2011-01-14 10 views
4

Ich weiß, Google seine eigenen Big Tabellen verwendet (ist das richtig?) Und Facebook und Twitter Cassandra verwenden, aber wann hat Ihr tägliches Projekt outgrow mysql (wenn überhaupt?)Wann ist ein Projekt für MySQL zu groß wird

Wenn Sie begannen mit einer potenziell massiven Web-Anwendung, würden Sie MySQL als Engine verwenden oder von Anfang an mit einer Alternative beginnen?

+0

Ich glaube Facebook verwendet immer noch mysql für seine Daten. Nachrichten sind in Cassandra. Ich könnte mich irren, obwohl – piyush

+0

Sie könnten richtig sein, ich denke, es verwendet Cassandra für seine "Posteingang", nur versucht, etwas aus The Social Network zu erinnern, ha! – benhowdle89

Antwort

3

Ich denke, der einzige Weg, wie Sie wissen können, wenn MySQL nicht gut genug ist, ist, wenn Sie Leistungsprobleme sehen, oder Sie fühlen sich wie Ihr kämpfen, um es in Gang zu halten. Wenn Sie wissen, dass Ihre Anwendung potenziell riesig ist, sollten Sie die richtigen Tools von Anfang an implementieren, da es sonst zu großen Kopfschmerzen bei der Übertragung zu einem späteren Zeitpunkt kommt.

0

Ich würde mit einer Alternative (PostgreSQL) beginnen, aber nicht wegen Skalierungsproblemen, sondern weil MySQL die Unterstützung für Transaktionen und referentielle Integrität wertlos ist.

+1

Es scheint, dass Sie versuchen, einen Flammenkrieg zu starten. Willst du Hilfe dabei? '' – Piskvor

+0

Nicht versucht, hier zu flammen, aber MySQL hat Datenintegritätsprobleme - MyISAM unterstützt überhaupt keine Fremdschlüssel, und sogar InnoDB committiert stillschweigend eine Transaktion, wenn eine DDL-Anweisung auftritt. – tdammers

3

Es gibt keine einfache Metrik, die Sie sagen, die Antwort wird - es hängt nicht nur von der Menge der Daten, die Anzahl der Transaktionen, sondern auch die Art der Replikation - Anzahl der replizierten Sites erforderliche Geschwindigkeit der Replikation usw.

Ja, ein großer NoSQL Clsuter kann einen MySQL Cluster übertreffen, der für das gleiche Budget für OLTP gebaut wurde, aber aus gutem Grund NoSQL genannt wird - wenn Sie etwas Nützliches mit den Daten, dem relationalen Modell und der SQL Sprache anfangen müssen Schneiden und Würfeln der Daten viel einfacher. OTOH, irgendwann überholt OLAP dann das relationale Modell hinsichtlich der Performance - aber ich denke, es wäre ziemlich schwierig, ein Datawarehouse für die Transaktionsverarbeitung zu verwenden.

So ist es durchaus möglich, dass die funktionalen Anforderungen einer Anwendung die Fähigkeiten einer NoSQL-Datenbank viel schneller übertreffen als die Perofrmance-Anforderungen eine relationale Datenbank übertreffen würden.