6 Stimmen

Couchbase Abfrage Ausführungszeit?

Wie kann ich die Abfragezeit und den Abfrageausführungsplan in Couchbase berechnen? Gibt es ähnliche Dienstprogramme wie Oracle Explain Plan und Tkprof in der Couchbase-Datenbank?

Bearbeiten:


Ich versuche zu sehen, welche Datenbank am besten für meine Daten geeignet ist. Deshalb experimentiere ich mit MySQL, MongoDB, Couchbase. Ich habe es mit drei verschiedenen Eintragszahlen von 10k, 20k, 40k Einträgen versucht.

Mit MySQL kann ich die Abfragezeit mit "SET PROFILING =1" sehen. Mit dieser Einstellung habe ich Abfragen unter drei Szenarien ausgeführt: 1) ohne Indizierung des Primärschlüssels, 2) nach der Indizierung des Primärschlüssels, 3) beim erneuten Ausführen der gleichen Abfrage (um den Effekt des Abfrage-Cachings zu sehen).

Ebenso habe ich dieselben Tests mit MongoDB durchgeführt und meine Ergebnisse in tabellarischer Form zusammengefasst. Ich möchte dieselben Tests mit Couchbase durchführen, um zu sehen, wie gut es sich verhalten würde. Ich habe versucht, im Internet zu suchen, aber konnte nichts finden, dem ich folgen könnte, um ähnliche Ergebnisse zu erhalten.

Unten steht die Tabelle, die ich habe (alle Zeiten sind in Millisekunden). Die zweite Zeile mit Klammern() zeigt die Abfragezeit für den zweiten Durchlauf.

Anzahl Datensätze    Mysql           MongoDB         CouchBase
        \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_     \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_     \_\_\_\_\_\_\_\_\_\_\_
        Ohne      | Mit         Ohne    | Mit       Mit Index
        Index     | Index       Index   | Index 

10K     62,27325  | 8,537       3311    | 33
        (33,3135) | (3,27825)       (7) | (0)

20K     108,4075  | 23,238      132 | 39    
        (80,90525)| (4,576)     (17)    | (0)

40K     155,074   | 26,26725    48  | 10
        (110,42)  | (10,037)    (42)    | (0)

Für Couchbase möchte ich sowohl die Leistung beim Abrufen eines Dokuments mit seinem Schlüssel (ähnliche Funktion wie Memcahed) als auch die Abfragezeit bei der Verwendung seiner Ansichten kennen.

11voto

scalabilitysolved Punkte 2463

Sie müssen verstehen, dass Couchbase anders funktioniert als RDBMS's wie Oracle. Couchbase bietet zwei Möglichkeiten, um Ihre Daten abzurufen:

1) Key-Lookup, Sie kennen den/die Schlüssel des Dokuments/Dokumente, die Sie abrufen möchten.

2) Definieren von Map-Reduce-Jobs namens Views, die Indizes erstellen, die es Ihnen ermöglichen, Ihre Daten nach Attributen abzufragen, die nicht der Schlüssel sind.

Couchbase-Dokumente sind immer konsistent, aber Views sind es nicht und sind schließlich konsistent (obwohl Sie die Möglichkeit haben, dies zu ändern).

Wie es in der Couchbase-Dokumentation heißt:

Views werden aktualisiert, wenn die Dokumentdaten auf die Festplatte geschrieben werden. Es gibt eine Verzögerung zwischen dem Erstellen oder Aktualisieren des Dokuments und der Aktualisierung des Dokuments in der Ansicht.

Die Abfragezeit hängt wirklich von einer Vielzahl von Faktoren ab. Kann die Ansichtsdaten veraltet sein? Wie groß sind die Daten, die aus dem Index ausgegeben werden, und wie ist die aktuelle Arbeitslast und Datenbankgröße? Couchbase bietet die folgenden 3 Flags für die Arbeit mit Views und wie Sie auf die Daten zugreifen möchten. False bedeutet, dass der Index aktualisiert werden muss, bevor das Ergebnis zurückgegeben wird, daher kann dies potenziell langsam sein.

  • false: Erzwinge ein Update der Ansicht, bevor Daten zurückgegeben werden.
  • ok: Erlaube veraltete Ansichten.
  • update_after: Erlaube veraltete Ansicht, aktualisiere die Ansicht nach dem Zugriff darauf.

Bitte schauen Sie sich das offizielle Dokument für ausführlichere Antworten an http://docs.couchbase.com/couchbase-manual-2.2/#views-and-indexes

Sie können auch diesen interessanten Artikel über das Cachen von Ansichten lesen http://blog.couchbase.com/caching-queries-couchbase-high-performance

Aktuell in der Entwicklung bei Couchbase ist N1QL, effektiv die Couchbase-Version von SQL, diese wird über das EXPLAIN-Statement verfügen, dies wird voraussichtlich erst Ende 2014 veröffentlicht.

Ein Blog-Beitrag, der N1QL einführt http://blog.couchbase.com/n1ql-it-makes-cents

Ein Spickzettel für N1QL http://www.couchbase.com/communities/sites/default/files/Couchbase-N1QL-CheatSheet.pdf

Und wo Sie die Entwicklervorschau herunterladen können, wenn Sie mit N1QL spielen möchten http://www.couchbase.com/communities/n1ql

Schauen Sie sich auch das cb stats tool http://docs.couchbase.com/couchbase-manual-2.2/#cbstats-tool an. Es gibt einen Überblick über Persistenzraten, Aktualisierungen, Schlüssel-Misses usw.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X