Frage

Ich versuche, meinen Kopf um Schlüsselwert Läden wie CouchDB und Cassandra zu wickeln. Ich verstehe, warum sie nützlich sind, aber so weit wie, wie sie eine RDBMS wie MySql ersetzen, ich verstehe es nicht.

Lassen Sie uns sagen, das ist mein, was ich speichern müssen:

{123456: {'model' : 'Ford'
          'color': 'blue'
          'MPG': 23}}

Dann brauche ich alle Autos zu finden, die blau sind.

Wie funktioniert der Schlüsselwertspeicher die Schlüssel abfragen, um den Wert mit? Ich las einige, wo die Karten reduzieren kann verwendet werden, aber an der Quelle von einigen Projekten suchen ich kein Beispiel gibt.

Lassen Sie mich wissen, ob ich die richtige Frage bin gefragt.

War es hilfreich?

Lösung

Im Grunde, wenn Sie Schlüsselwert speichern verwenden, bauen Sie eine Datenbank aus den gleichen Komponenten, die eine relationale Datenbank intern hat. Der Grund dafür ist, mehr Kontrolle und Flexibilität über Skalierung und Leistung zu haben, oder einfach nur für Geradlinigkeit.

In diesem Fall müssen Sie das Äquivalent der Tabellenzeilen speichern und den Index als zwei getrennte Dinge. Also, wenn Sie indizieren auf Farbe wünschen, dann müssen Sie speichern

{'blue': {123456}}

in dem Äquivalent eines Indextabelle.

Natürlich einige Schlüssel-Wert-Shops bieten Indizierung und Suche Mechanismen für Sie so gibt es keine allgemeine Regel, die alle passt.

Andere Tipps

Sie würden wollen, einen eigenen Schlüssel / Wert-Speicher zu erhalten, die im Wesentlichen ein Index ist. Es wäre „blau“ als Schlüssel, und dann eine Liste aller IDs aus dem „main“ Autos Geschäft, das blau ist.

Ja, das ist Duplizieren der Index Funktionalität eines regulären rdbms.

Dies ist ein guter Artikel darüber, wie das Friend Team dieses Problem angesprochen und auf dieser Lösung angesiedelt, zusammen mit ihrer Begründung (ich weiß, ein bisschen seltsam, da sie eine RDBMS als Schlüssel / Wert-Speicher verwendet, aber die Diskussionspunkte sind Klang Theorie):
http://bret.appspot.com/entry/how-friendfeed-uses- mysql

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