2009-08-06 11 views
12

Bueno, sé que es un poco estúpido. Si quiero almacenar una gran cantidad de datos. ¿Debo usar xml o database (mysql)?¿Dónde están las diferencias usando la base de datos XML y MySQL? ¿Qué debería usar?

¿Por qué eliges (uno)?

¿Cuáles son los pros y los contras que utilizan xml?

¿Cuáles son los pros y los contras que usan mysql?

Clubpenguin, Habbo, los mundos virtuales están utilizando XML o MySQL ??

+0

Esto probablemente sería mejor en stackoverflow –

+0

No hay nada de malo en tu pregunta, pero estoy de acuerdo en que es probable que obtengas la mejor información sobre este tema del público SO. –

+2

Almacenar una gran cantidad de datos en un archivo xml es divertido. Pero solo si odias tu vida y estás buscando formas de hacerlo más miserable. –

Respuesta

0

La mayoría de los sitios grandes usan una base de datos como MySQL.

La pregunta más importante que debe responder es cómo desea acceder a sus datos. Si quieres que mucha gente busque cosas muchas veces por segundo (por ejemplo, un sitio web popular), utiliza una base de datos como mysql.

0

creería que es más probable que estén usando un DBMS de pleno derecho como un almacén de respaldo, y sólo la generación/análisis de XML como una interfaz.

XML es demasiado pesado para ser usado en una base de datos de almacenamiento de datos.

La estructura es demasiado pesada e incluso si tuviera algún tipo de servidor que comenzara, analizara y luego ejecutara en base a los datos XML, el tiempo de inicialización sería decisivo, como lo sería la fase de reserva de datos todo el tiempo una escritura fue hecha.

beneficio de RDBMS por tener el almacenamiento de datos embalado mucho más eficiente con la búsqueda predecible/buscando a través de los registros y múltiples-almacenes de datos y múltiples índices del.

+0

nb. esta pregunta probablemente sea más apta para StackOverflow.com, no es realmente un trato del lado del servidor, es más un trato programático/eficiencia/implementación. –

20

MySQL (o SQL Server, Oracle, DB2, etc.) son motores de bases de datos: son aplicaciones específicas que fueron construidas para el almacenamiento y procesamiento de datos, y son muy buenos para hacer eso; también pueden ejecutarse en un servidor diferente al que está su programa principal, lo que permite compartir la carga.

Los archivos XML son solo archivos de texto almacenados en su máquina u otra; necesitan ser leídos, analizados y escritos, y solo su programa puede hacer eso. También son muy, muy ineficientes, debido a su naturaleza de texto: leer y analizar un archivo de texto es muy lento, y modificarlo es aún peor.

archivos XML son buenos para almacenar los ajustes de configuración y pasar datos entre diferentes sistemas, pero el almacenamiento y procesamiento de datos definitivamente debe vivir en un DBMS adecuada.

También, obligatory Joel Spolsky reference.

3

Depende mucho del tipo de datos que desee almacenar. Si está almacenando principalmente documentos orientados, XML puede ser una buena opción. Si está almacenando muchas jerarquías pequeñas, XML probablemente sea mejor que SQL. El tiempo para leer y analizar un archivo XML es más que el tiempo necesario para obtener una consulta simple de una base de datos. Pero si tiene datos que no encajan de forma natural en una base de datos, el costo de la consulta podría aumentar drásticamente y en realidad pasar a ser algo más que el uso de archivos XML.

Otra opción que se podría tratar de usar una base de datos XML, por ejemplo Xindice (http://xml.apache.org/xindice/). Las bases de datos XML no son muy utilizadas en este momento, sobre todo porque no tenemos buenas teorías matemáticas sobre bases de datos jerárquicos. Pero pueden ser realmente útiles si tienes el problema correcto ...

1

Esto parece más una pregunta de StackOverflow en lugar de una pregunta de ServerFault. De todos modos ..

Si necesita acceso aleatorio a los elementos de datos, use una base de datos real. Si solo está haciendo un procesamiento por lotes o algo así, xml funcionará, pero una base de datos también está bien para eso también.

Si no necesita almacenar datos con propiedades relacionales, puede probar un almacén de claves/valores, o una base de datos orientada a documentos, en lugar de un RDBMS, para un mejor rendimiento/escalabilidad a cambio de menos características.

4

Considere si tiene un documento XML con un elemento de persona anidada que contiene información sobre cada uno de sus usuarios, y tiene 3000 usuarios. Si desea obtener la información de una sola persona, tendrá bastante tarea de analizar ese enorme archivo para encontrar la información de esa persona. Podrías utilizar alguna búsqueda inteligente para saltar el archivo, pero en última instancia, habrá un gran acceso secuencial.

Con una base de datos, normalmente tendrá índices, lo que le permitirá realizar tareas de búsqueda muy rápidamente como la anterior. En el escenario anterior, encontrar un individuo en una tabla indexada probablemente será del orden de 100 veces más rápido.

1

Bueno, sé que es un poco estúpido. Si quiero almacenar una gran cantidad de datos. ¿Debo usar xml o database (mysql)?

En primer lugar, es XML jerárquica, por su naturaleza, mientras que MySQL es relacional.

Si va a almacenar sus datos como XML documento:

<customer> 
<address/> 
<address/> 
</customer> 

, es súper fácil de obtener todas las direcciones de un cliente, pero no tan fácil de obtener clientes para una dirección dada.

En segundo lugar, XML es más orientado al usuario. Puede editarlo fácilmente con su editor de texto favorito. En MySQL, no es tan fácil.

Visto todo lo anterior, si sus datos son jerárquicos, de pequeño tamaño y necesita que sean fácilmente editables sin ninguna interfaz, use XML.

Si sus datos son relacionales y necesita operaciones de configuración rápida en grandes cantidades de datos, use MySQL.

0

XML no es una base de datos, es un formato de archivo (o, para ser más precisos, un formato de flujo de entrada o salida). Le permite definir su propio formato utilizando los elementos de sintaxis de XML y luego puede, por ejemplo, convertir su objeto de memoria a una secuencia XML y guardarlo en el disco.

mySQL es un producto de software que pertenece a la clase de productos llamada DBMS (sistema de gestión de bases de datos). Los DBMS administran sus datos y brindan diversas capacidades de almacenamiento, recuperación, indexación, consulta y transacción.

Lo que necesita decidir es si necesita un formato de archivo o un sistema de gestión. Dependiendo de eso, su elección puede ser XML (o algún otro formato, por ejemplo, JSON o un archivo de texto sin formato) o mySQL (u otro DBMS relacional, p.MS SQL Server u Oracle, o incluso puede ser un DBMS no relacional).

2

Markmail.org puede sorprenderte, es una tienda xml.

Lea Ron Burret (http://www.rpbourret.com/xml/XMLAndDatabases.htm) es una excelente fuente de información sobre el tema.

+0

@John ha sido el único en decir que XML estaba bien pero no se le ha permitido votar. Sus argumentos parecen ser buenos (base de datos XML de Mark Logic + extensa investigación sobre bases de datos XML). En informática, y especialmente en Stack Overflow, a veces, _single thought_ es una regla :( – smonff

Cuestiones relacionadas