2009-08-06 5 views
12

Beh, so che è un po 'stupido. Se voglio memorizzare una grande quantità di dati. Dovrei usare xml o database (mysql)?Dove sono le differenze usando il database XML e MySQL? Quale dovrei usare?

Perché scegliete (quello) uno?

Quali sono i pro e i contro che utilizzano xml?

Quali sono i pro e i contro che usano mysql?

Clubpenguin, hotel habbo, quei mondi virtuali usano xml o mysql ??

+0

Questo probabilmente sarebbe meglio su stackoverflow –

+0

Non c'è niente di sbagliato nella tua domanda, ma sono d'accordo sul fatto che probabilmente avrai il miglior input su questo argomento dalla folla SO. –

+2

Memorizzare una grande quantità di dati in un file xml è divertente. Ma solo se odi la tua vita e stai cercando dei modi per renderlo più miserabile. –

risposta

0

La maggior parte dei siti di grandi dimensioni utilizza un database come MySQL.

La domanda più importante a cui devi rispondere è come vuoi accedere ai tuoi dati. Se vuoi avere molte persone che guardano le cose molte volte al secondo (ad esempio un sito web popolare), usa un database come mysql.

0

Credo che sia più probabile che stiano utilizzando un DBMS a pieno titolo come backing store e solo generando/analizzando XML come interfaccia.

XML è troppo pesante per essere utilizzato per un database di archivio di dati elevato.

la struttura è troppo analizzare-pesante e anche se tu avessi una sorta di assistente che ha iniziato, analizzato, e poi corse in base ai dati XML, il tempo di inizializzazione sarebbe assassino, come sarebbe la fase dati reserialization ogni volta una scrittura è stata fatta.

Il vantaggio di RDBMS è quello di disporre di un'archiviazione dei dati più efficiente con una ricerca/ricerca prevedibile attraverso record e più archivi di dati e più indici.

+0

nb. questa domanda è probabilmente più adatta per StackOverflow.com, non è davvero un affare lato server, è più un accordo programmatico/di efficienza/implementazione. –

20

MySQL (o SQL Server, Oracle, DB2, ecc.) Sono motori di database: sono applicazioni specifiche che sono state create per l'archiviazione e l'elaborazione dei dati e sono molto efficaci; possono anche girare su un server diverso da quello in cui si trova il programma principale, consentendo la condivisione del carico.

I file XML sono solo file di testo memorizzati sulla macchina o un'altra; devono essere letti, analizzati e scritti, e solo il tuo programma può farlo. Sono anche davvero, davvero inefficienti, a causa della loro natura testuale: la lettura e l'analisi di un file di testo è molto lenta e la modifica è ancora peggiore.

I file XML sono utili per archiviare le impostazioni di configurazione e passare i dati tra sistemi diversi, ma l'archiviazione e l'elaborazione dei dati dovrebbero sicuramente vivere in un DBMS appropriato.

Inoltre, obligatory Joel Spolsky reference.

3

Dipende molto dal tipo di dati che si desidera memorizzare. Se stai archiviando roba per lo più orientata al documento, XML può essere una buona scelta. Se si memorizzano molte piccole gerarchie, XML è probabilmente migliore di SQL. Il tempo di leggere e analizzare un file XML è sicuramente più il tempo necessario per ottenere una query semplice da un database. Ma se si dispone di dati che non si adattano in modo naturale in un database, il costo della query potrebbe aumentare notevolmente e in realtà diventare più di un semplice utilizzo di file XML.

Un'altra opzione che è possibile provare è l'utilizzo di un database XML, ad esempio Xindice (http://xml.apache.org/xindice/). I database XML non sono molto usati al momento, soprattutto perché non abbiamo buone teorie matematiche sui database gerarchici. Ma possono essere davvero utili se hai il problema giusto ...

1

Questo sembra più una domanda StackOverflow piuttosto che una domanda ServerFault. In ogni caso ..

Se è necessario l'accesso casuale agli elementi di dati, utilizzare un database reale. Se stai solo eseguendo l'elaborazione in batch o qualcosa del genere, xml funzionerà, ma un database è ancora valido anche per questo.

Se non è necessario memorizzare i dati con proprietà relazionali, è possibile provare un archivio di chiavi/valori o un database orientato ai documenti, anziché un RDBMS, per prestazioni/scalabilità migliori in cambio di un numero inferiore di funzioni.

4

Considerare se si dispone di un documento XML con un elemento di persona nidificata che contiene informazioni su ciascun utente e si dispone di 3000 utenti. Se vuoi estrarre le informazioni per una singola persona, avrai abbastanza il compito di analizzare attraverso quell'enorme file per trovare le informazioni di quella persona. Potresti usare una ricerca intelligente per aggirare il file, ma alla fine ci sarà un sacco di accesso sequenziale.

Con un database di solito si hanno indici, che consentono di eseguire rapidamente ricerche come il precedente. Nello scenario sopra riportato, trovare un individuo in una tabella indicizzata sarà probabilmente dell'ordine di 100 volte più veloce.

1

Beh, so che è un po 'stupido. Se voglio memorizzare una grande quantità di dati. Dovrei usare xml o database (mysql)?

Prima di tutto, è XMLgerarchica per sua natura, mentre MySQL è relazionale.

Se si memorizzare i dati come XML documento:

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

, è super facile da ottenere tutti gli indirizzi di un cliente, ma non così facile da ottenere clienti per un determinato indirizzo.

Secondo, XML è più orientato all'utente. Puoi facilmente modificarlo con il tuo editor di testo preferito. Nel MySQL, non è così facile.

Dato tutto quanto sopra, se i dati sono gerarchici, di piccole dimensioni e sono necessari per essere facilmente modificabili senza alcun frontend, utilizzare XML.

Se i dati sono relazionali e sono necessarie operazioni di impostazione rapida su grandi quantità di dati, utilizzare MySQL.

0

XML non è un database, è un formato di file (o, per essere più precisi, un formato di input o di output). Ti consente di definire il tuo formato utilizzando gli elementi di sintassi XML e quindi, ad esempio, puoi convertire il tuo oggetto di memoria in un flusso XML e salvarlo sul disco.

mySQL è un prodotto software che appartiene alla classe di prodotti denominata DBMS (Database managent system). I DBMS gestiscono i tuoi dati e forniscono varie funzionalità di archiviazione, recupero, indicizzazione, query e transazioni.

Quello che è necessario decidere è se è necessario un formato di file o un sistema di gestione. A seconda di ciò, la tua scelta potrebbe essere XML (o qualche altro formato, ad esempio JSON o un file di testo normale) o mySQL (o un altro DBMS relazionale, ad es.MS SQL Server o Oracle - o potrebbe anche essere un DBMS non relazionale).

2

Markmail.org potrebbe sorprendervi: è un negozio xml.

Leggi Ron Burret (http://www.rpbourret.com/xml/XMLAndDatabases.htm) è un'ottima fonte sull'argomento.

+0

@John è stato l'unico a dire che XML era ok ma non gli è stato permesso di votare. I suoi argomenti sembrano essere buoni (database XML di Mark Logic + approfondita ricerca sui database XML). In informatica, e in particolare su Stack Overflow, a volte, _single thought_ è una regola :( – smonff

Problemi correlati