/ Instrukcja / delete trwa zbyt długo, aby zakończyć działanie lub zawiedzie na MAC w systemie operacyjnym neo4j 3.2.0 - neo4j, cypher

instrukcja delete zajmuje nierozsądny czas na zakończenie lub niepowodzenie na MAC z OS neo4j 3.2.0 - neo4j, cypher

MAX OS X 10.11.6, neo4j 3.2.0

proste zapytanie w bazie danych bez relacji (relacje zostały usunięte MATCH ()-[a]-() delete a);

Ustawić:

match ()-[a]-() return count(a);

+----------+
| count(a) |
+----------+
| 576333   |
+----------+

Następnie chcę wyczyścić bazę danych:

match (a) delete a;

i po 5 minutach dostaję

Za mało pamięci, aby wykonać prądzadanie. Spróbuj zwiększyć „dbms.memory.heap.max_size” w konfiguracji neo4j (zwykle w „conf / neo4j.conf” lub, jeśli używasz Neo4j Desktop, znaleziony przez interfejs użytkownika) lub jeśli prowadzisz instalację osadzoną zwiększ stertę, używając flagi wiersza polecenia „-Xmx”, a następnie ponownie uruchom bazę danych.

Pomaga to jednak:

MATCH (n) with n limit 100000 delete (n) ;

0 wierszy dostępnych po 302 ms, zużyte po kolejnych 0 ms

Usunięto 100000 węzłów

Czy ktoś mógłby skomentować takie zachowanie bazy danych? Czy to błąd, czy funkcja?

Odpowiedzi:

1 dla odpowiedzi № 1

Po pierwsze, jeśli chcesz usunąć wszystkie swoje dane, rozważ użycie DETACH DELETE zamiast DELETE dowództwo.

Spowoduje to usunięcie wszystkich relacji między węzłami, a następnie usunięcie węzła. W przeciwnym razie z MATCH (n) with n limit 100000 delete (n) usuniesz tylko sieroce węzły.

Wszystkie modyfikacje danych w transakcji są przechowywane w pamięci. Więc jeśli spróbujesz usunąć 10G of data od razu będziesz potrzebować 10G of RAM.

Aby uniknąć dodawania pamięci do sterty Java w celu rozwiązania tego problemu, należy wykonać wsadowe operacje.

Jednym ze sposobów jest powtórzenie tego zapytania, dopóki nie uzyska wyniku 0 : MATCH (n) WITH n LIMIT 100000 DETACH DELETE n RETURN count(*).

Istnieje kilka pomocników w projekcie APOC, które mogą ci pomóc w podobny sposób apoc.periodic.commit. Spójrz tutaj: https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_further_functions

Twoje zdrowie