2013-06-10 15 views
12

Sono davvero nuovo nel database e sono interessato ad alcune conoscenze di base di alto livello. Ho letto this wonderful SO post. I sotto uno è meglio di un altro in alcuni casi, ma non sono sicuro del perché.mongoDB vs mySQL - perché uno è migliore di un altro in alcuni aspetti

  1. Perché MySQL è più veloce di MongoDB nelle operazioni di join?

  2. Perché MongoDB scala meglio nel sistema distribuito?

  3. Perché MongoDB è più veloce se sto "selezionando solo un mucchio di tabelle e mettendo tutti gli oggetti insieme, AKA cosa fa la maggior parte delle persone in un'app web"?

Grazie mille!

risposta

18

Questa domanda è priva di qualsiasi ricerca reale, voglio dire tu dici di aver letto quella domanda, ma o quella domanda ha alcuni problemi reali con la fonte delle sue informazioni o ... beh; comunque:

Perché MySQL è più veloce di MongoDB nelle operazioni di join?

Perché non ce n'è? MongoDB NON HA UN SOLO SERVER JOIN. Mi dispiace metterlo in maiuscolo, ma lo dico spesso, mi viene voglia di metterlo come risposta defacto per la maggior parte delle domande.

Qualsiasi join che fai è client side. Ciò significa che saranno effettivamente più lenti di MySQL o di altri tecnici SQL. L'idea importante alla base della collaborazione con i clienti è che farli diventare server-side diventa molto difficile scalare in enormi ambienti distribuiti, se non impossibile. Questo è il motivo per cui molti grandi utenti SQL tentano effettivamente di prevenire enormi join e stanno effettivamente cercando di fare in SQL ciò che fa MongoDB.

Il caso per questo dipende ovviamente dallo scenario.

Perché MongoDB scala meglio nel sistema distribuito?

http://docs.mongodb.org/manual/replication/ è molto importante qui e così anche è http://docs.mongodb.org/manual/core/sharded-clusters/ e consiglio la lettura sia con cura e come si scalabili in partizioni di dati e cosa no.

Perché MongoDB è più veloce se sto "selezionando solo un mucchio di tabelle e mettendo tutti gli oggetti insieme, AKA cosa fa la maggior parte delle persone in un'app web"?

Non so cosa intendi con quello.

Mi rendo conto che questa non è una grande risposta, ma la tua domanda è una di quelle domande di fatto e quindi ho risposto con una risposta defacto.

Dal momento che sei un nuovo database in generale io personalmente consiglierei di andare utilizzare uno ...

+0

Quindi, se io a fare questo: http://blog.mongodb.org/post/35133050249/mongodb-for -the-php-mind-part-3 Per i dati delle righe 300k, sarà più veloce unirmi a MySQL rispetto a MongoDB, giusto? –

+0

@AnggieAziz Dipende dalle query specifiche, con gli elenchi incorporati JOIN (il primo esempio) se dovessi scegliere tutti i tag in realtà sarebbe più veloce in MongoDB poiché si tratta comunque di due query indicizzate, se si dovessero fare join complessi su più tabelle, ordina quel join e impagina quello JOIN su milioni di righe, quindi i tecnici di SQL non fanno altro che guadagnare MongoDB – Sammaye

+0

"Vai a usarne uno" .. lol brutale. Bella risposta –