Een index is een gegevensstructuur die de snelheid van het ophalen van gegevens in een database verbetert.
In Neo4j kunt u een index maken over een eigenschap op elk knooppunt dat een label heeft gekregen. Zodra u een index heeft gemaakt, zal Neo4j deze beheren en up-to-date houden wanneer de database wordt gewijzigd.
Gebruik de CREATE INDEX ON
. om een index te maken uitspraak. Zoals dit:
CREATE INDEX ON :Album(Name)
In het bovenstaande voorbeeld maken we een index op de Naam eigenschap van alle knooppunten met het Album label.
Wanneer de instructie slaagt, wordt het volgende bericht weergegeven:
Wanneer u een index maakt, zal Neo4j de index op de achtergrond maken. Als uw database groot is, kan dit enige tijd duren.
Pas wanneer Neo4j klaar is met het maken van de index, wordt deze online gebracht en kan deze worden gebruikt in zoekopdrachten.
Bekijk de index
Indexen (en beperkingen) worden onderdeel van het (optionele) databaseschema.
In de Neo4j-browser kunt u alle indexen en beperkingen bekijken met behulp van het :schema
commando.
Typ dit gewoon:
:schema
U ziet een lijst met indexen en beperkingen:
Indextips
Zodra een index is gemaakt, wordt deze automatisch gebruikt wanneer u relevante zoekopdrachten uitvoert.
Met Neo4j kunt u echter ook een of meer indexen afdwingen met een hint. U kunt een indexhint maken door USING INDEX ...
. op te nemen in uw zoekopdracht.
Dus we kunnen de bovenstaande index als volgt afdwingen:
MATCH (a:Album {Name: "Somewhere in Time"}) USING INDEX a:Album(Name) RETURN a
U kunt ook meerdere hints geven. Voeg eenvoudig een nieuwe toe USING INDEX
voor elke index die u wilt afdwingen.
Indexeren of niet indexeren?
Wanneer Neo4j een index aanmaakt, creëert het een redundante kopie van de gegevens in de database. Daarom zal het gebruik van een index resulteren in meer schijfruimte die wordt gebruikt, plus langzamer schrijven naar de schijf.
Daarom moet u deze factoren afwegen wanneer u beslist welke gegevens/eigenschappen u wilt indexeren.
Over het algemeen is het een goed idee om een index te maken als u weet dat er veel gegevens op bepaalde knooppunten zullen zijn. Als u vindt dat zoekopdrachten te lang duren om terug te komen, kan het toevoegen van een index helpen.