sql >> Databáze >  >> RDS >> Mysql

Neo4j - Vytvořte index pomocí Cypher

index je datová struktura, která zvyšuje rychlost operací načítání dat v databázi.

V Neo4j můžete vytvořit index nad vlastností na libovolném uzlu, kterému bylo přiděleno označení. Jakmile vytvoříte index, Neo4j jej bude spravovat a udržovat jej aktuální při každé změně databáze.

Chcete-li vytvořit index, použijte CREATE INDEX ON prohlášení. Takhle:

CREATE INDEX ON :Album(Name)

Ve výše uvedeném příkladu vytvoříme index pro Název vlastnost všech uzlů s Album štítek.

Když je příkaz úspěšný, zobrazí se následující zpráva:

Když vytvoříte index, Neo4j vytvoří index na pozadí. Pokud je vaše databáze velká, může to chvíli trvat.

Teprve když Neo4j dokončí vytváření indexu, bude uveden online a lze jej použít v dotazech.

Zobrazit rejstřík

Indexy (a omezení) se stávají součástí (volitelného) databázového schématu.

V prohlížeči Neo4j můžete zkontrolovat všechny indexy a omezení pomocí :schema příkaz.

Jednoduše napište toto:

:schema

Zobrazí se seznam všech indexů a omezení:

Indexové rady

Jakmile bude index vytvořen, bude automaticky použit při provádění relevantních dotazů.

Neo4j však také umožňuje vynutit jeden nebo více indexů s nápovědou. Nápovědu indexu můžete vytvořit zahrnutím USING INDEX ... ve vašem dotazu.

Výše uvedený index bychom tedy mohli vynutit následovně:

MATCH (a:Album {Name: "Somewhere in Time"}) 
USING INDEX a:Album(Name) 
RETURN a

Můžete také poskytnout více tipů. Jednoduše přidejte nový USING INDEX pro každý index, který chcete vynutit.

Indexovat či neindexovat?

Když Neo4j vytvoří index, vytvoří nadbytečnou kopii dat v databázi. Proto použití indexu povede k většímu využití místa na disku a pomalejšímu zápisu na disk.

Proto musíte při rozhodování, která data/vlastnosti indexovat, tyto faktory zvážit.

Obecně je dobré vytvořit index, když víte, že na určitých uzlech bude hodně dat. Také pokud zjistíte, že návrat dotazů trvá příliš dlouho, přidání indexu může pomoci.


  1. Událost čekání:změna velikosti asynchronního deskriptoru

  2. Dotaz Android SQLite, kde sloupec není prázdný a není prázdný

  3. Ukládejte procedury do phpMyAdmin

  4. Jaké účinky má použití binárního řazení?