Neo4j Abgleich / Abfrage Abfrage dauert zu lange 25 Sek

8

Mein System ist 8-Core und 16 GB RAM. Aber immer noch durchqueren: Benutzerknoten benötigen zu viel Zeit ungefähr 25 Sekunden.

Ich habe 2 Eigenschaften wie in neo4j-wrapper.conf:

%Vor%
  • : Benutzer gibt die Felder 15-20 zurück;
  • 2-3 Indizes (created_at haben einen Index)
  • Sortierung erfolgt auf created_at DESC
  • insgesamt 5 Millionen Knoten mit einer Datenbankgröße von fast 8 GB
  • : Benutzerknoten sind 4 Millionen.
  • Die Seitenaufteilung ist abgeschlossen. Pro Seite werden 10 Datensätze abgerufen.
  • Ohne ORDER Durch gibt es Ergebnisse in 0,3 Sekunden.
%Vor%

Wie kann ich die Antwortzeit vom Neo4j Server reduzieren? Welche neo4j.properties kann eingestellt werden, um die Ausführungszeit zu reduzieren?

    
Somnath Muluk 15.05.2015, 08:38
quelle

2 Antworten

2

Ich hatte etwas Glück, indem ich sowohl den Init-Speicher als auch den Maximalspeicher auf den gleichen Wert stellte (so dass der JVM keine Größenänderung vornehmen muss) und auch die Garbage Collection gesetzt hat. Geben Sie diese Werte in Ihrer Conf-Datei an:

%Vor%     
user2338089 20.05.2015, 18:38
quelle
3

Indizes in Neo4j werden zum Nachschlagen von Knoten und nicht zum Sortieren verwendet. Wenn Sie eine sortierte Liste von 4M-Knoten paginieren möchten, dauert es einige Zeit.

Der Weg, dies zu lösen, ist durch richtige Datenmodellierung. Wenn Sie eine neue User hinzufügen möchten, haben Sie eine :PREV_USER -Beziehung zu der, die vor der aktuellen erstellt wurde. Die Benutzer in Ihrem System bilden dann eine verknüpfte Liste, die die Benutzer in zeitlicher Reihenfolge enthält.

Diese verkettete Liste ist schnell und einfach zu durchqueren.

    
Stefan Armbruster 15.05.2015 08:58
quelle