sql >> Databasteknik >  >> RDS >> Mysql

Neo4j - Skapa ett index med Cypher

Ett index är en datastruktur som förbättrar hastigheten för datahämtning i en databas.

I Neo4j kan du skapa ett index över en egenskap på vilken nod som helst som har fått en etikett. När du väl har skapat ett index kommer Neo4j att hantera det och hålla det uppdaterat när databasen ändras.

För att skapa ett index, använd CREATE INDEX ON påstående. Så här:

CREATE INDEX ON :Album(Name)

I exemplet ovan skapar vi ett index på Namn egenskapen för alla noder med Album etikett.

När påståendet lyckas visas följande meddelande:

När du skapar ett index kommer Neo4j att skapa indexet i bakgrunden. Om din databas är stor kan det ta lite tid.

Först när Neo4j har skapat klart indexet kommer det att läggas upp online och det kan användas i frågor.

Visa indexet

Index (och begränsningar) blir en del av det (valfria) databasschemat.

I Neo4j-webbläsaren kan du granska alla index och begränsningar genom att använda :schema kommando.

Skriv helt enkelt detta:

:schema

Du kommer att se en lista över eventuella index och begränsningar:

Indextips

När ett index har skapats kommer det automatiskt att användas när du utför relevanta frågor.

Men Neo4j låter dig också tvinga fram ett eller flera index med en hint. Du kan skapa ett indextips genom att inkludera USING INDEX ... i din fråga.

Så vi kan genomdriva ovanstående index enligt följande:

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

Du kan också ge flera tips. Lägg bara till en ny USING INDEX för varje index som du vill tillämpa.

Att indexera eller inte indexera?

När Neo4j skapar ett index skapar det en redundant kopia av data i databasen. Användning av ett index kommer därför att resultera i att mer diskutrymme utnyttjas, plus långsammare skrivningar till disken.

Därför måste du väga upp dessa faktorer när du bestämmer vilka data/egenskaper som ska indexeras.

Generellt sett är det en bra idé att skapa ett index när du vet att det kommer att finnas mycket data på vissa noder. Om du upptäcker att det tar för lång tid att returnera frågor kan det hjälpa att lägga till ett index.


  1. Standardradordning för vald fråga i Oracle

  2. 6 roliga fakta om Microsoft som du förmodligen inte känner till!

  3. Oracle:sekvens MySequence.currval är ännu inte definierad i denna session

  4. Hur man skapar en tabell med flera främmande nycklar och inte blir förvirrad