Frage

Ich bin wohl in der MySQL-Raum entwarf mehrere apps über die letzten paar Jahre, und dann die kontinuierliche Verfeinerung der Leistung und Skalierbarkeit Aspekte.Ich habe auch einige Erfahrung in der Arbeit mit memcached zu bieten-Anwendung Seite speed-ups zu Häufig abgefragt Ergebnis-sets.Und vor kurzem habe ich umgesetzt, die Amazon SDB als meine primäre "Datenbank" für eine E-Commerce-experiment.

Zu übermäßig vereinfachen, eine kurze Begründung ging ich durch die in meinem Kopf für die Verwendung der SDB-service war, dass mit Hilfe einer schema-weniger Struktur der Datenbank erlauben würde, mich zu konzentrieren auf das logische problem von meinem Projekt, und schnell sammeln sich die Inhalte in meinen Daten-Speicher.Das ist, Mach dir keine sorgen über die Einrichtung und normalisieren alle möglichen Permutationen der Produkt-Eigenschaften, bevor die hand;starten Sie einfach den laden, in dem Produkte und die SDB-einfach alles erinnern, was verfügbar ist.

Nun, ich habe es geschafft, durch die ersten paar Iterationen von meinem Projekt, und ich brauche, um das setup einfache Schnittstellen zu den Daten, die ich verwende, um zu Fragen, dass hatte ich selbstverständlich arbeiten mit MySQL.Ex:Gruppierung in select-Anweisungen und limit syntax zum Abfragen "Elemente 50 bis 100".Die Leichtigkeit Vorteil erlangte ich mit schema-freie Architektur von SDB, verlor ich in einem performance-hit von Abfrage/Schleife ein resultset mit knapp über 1800 Artikeln.

Jetzt bin ich beim Lesen über Projekte wie Tokyo Cabinet erweitern das Konzept von in-memory key-value stores zu bieten pseudo-relationalen Funktionalität zu überraschend schneller Geschwindigkeiten (14x habe ich irgendwo gelesen).

Meine Frage:Gibt es einige rudimentäre Richtlinien und Heuristiken, die ich als Anwendung-designer/ - Entwickler kann durch zu evaluieren, welche DB-tech ist die am besten geeignete an jeder Etappe von meinem Projekt.

Ex:Bei einem prototyping-Phase, wo logische/technische Unkenntnis von der Anwendung machen die Daten-Struktur-fluid:verwenden SDB.In einem reiferen Stadium, wo Benutzer erbringenden Leistungen stehen dabei im Vordergrund, der Einsatz traditioneller Werkzeuge, bei denen Sie don nicht haben zu verbringen dev schreiben, Sortieren, gruppieren oder Paginierung Logik.

Praktische Erfahrung mit diesen tools, die würde sehr geschätzt werden.

Herzlichen Dank!

Shaheeb R.

War es hilfreich?

Lösung

Die neuen Lösungen sind keine "Wundermittel".

Im Vergleich zu herkömmlichen RDBMS, diese Systeme machen Verbesserungen in einigen Aspekt (Skalierbarkeit, Verfügbarkeit oder Einfachheit) von Handel-off andere Aspekte (reduziert Abfrage-Fähigkeit, eventual consistency, schreckliche Leistung für bestimmte Vorgänge).

Betrachten Sie diese nicht als Ersatz der traditionellen Datenbank, aber Sie sind spezielle tools für eine bekannte, spezifische müssen.

Nehmen Sie Amazon Simple DB für Beispiel, SDB ist im Grunde eine riesige Kalkulationstabelle, wenn Sie Ihre Daten Aussehen, dann ist es wahrscheinlich gut funktioniert und die hervorragende Skalierbarkeit und Einfachheit wird Sie sparen eine Menge Zeit und Geld.

Wenn Ihr system erfordert sehr strukturierten und komplexen Abfragen, aber Sie darauf bestehen, mit einem dieser coolen neuen Lösung, die Sie bald finden Sie sich mitten in die re-Implementierung eines stümperhaft, schlecht entworfen, RDBMS, mit allen Ihr innewohnenden Problemen.

In dieser Hinsicht, wenn Sie nicht wissen, ob diese Ihren Bedarf anpassen, denke ich, dass es eigentlich besser ist zu machen Ihre ersten paar Iterationen in einem traditionellen RDBMS, weil Sie Ihnen die beste Flexibilität und die Fähigkeit, vor allem in der Bereitstellung eines einzelnen Servers und unter bescheidenen laden.(siehe CAP-Theorem).

Sobald Sie eine bessere Vorstellung davon haben, was Ihre Daten Aussehen und wie wird Sie verwendet werden, dann können Sie Ihren Bedürfnissen entsprechen, eine Ersatzlösung.

Wenn Sie wollen die Einfachheit einer cloud-gehosteten Lösung, muss aber eine relationale Datenbank, Sie können check out: Amazon Relational Database Service

Andere Tipps

Die Probleme, die Sie finden werden, warum RDBMS-Spezialisten sehen Sie sich einige der alternativen Systeme mit einer Gelbsucht Auge.Ja, die alternative Systeme mit bestimmten spezifischen Anforderungen extrem schnell, aber sobald Sie wollen, etwas anderes zu tun, mit den gleichen Daten, die fleetest plötzlich das Schlusslicht.Durch Kontrast, eine RDBMS verwaltet normalerweise die Varianten mit größerer gelassenheit;es ist vielleicht nicht ganz so schnell wie die fleetest für die spezielle Arbeitslast, die die fleetest ist micro-optimiert zu behandeln, aber es nur selten verschlechtert sich so schnell, wenn aufgerufen, sich auch mit anderen Abfragen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top