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.