OrientDB - indeksy
Index to wskaźnik, który wskazuje lokalizację danych w bazie danych. Indexingto koncepcja używana do szybkiego lokalizowania danych bez konieczności przeszukiwania każdego rekordu w bazie danych. OrientDB obsługuje cztery algorytmy indeksowania i kilka typów w każdym.
Cztery typy indeksów to -
Indeks drzewa SB
Zapewnia dobre połączenie funkcji dostępnych z innych typów indeksów. Lepiej użyć tego do ogólnej użyteczności. Jest trwały, transakcyjny i obsługuje zapytania zakresowe. Jest to domyślny typ indeksu. Różne wtyczki obsługujące ten algorytm to -
UNIQUE- Te indeksy nie zezwalają na zduplikowane klucze. W przypadku indeksów złożonych odnosi się to do niepowtarzalności kluczy złożonych.
NOTUNIQUE - Te indeksy zezwalają na zduplikowane klucze.
FULLTEXT- Te indeksy są oparte na każdym pojedynczym słowie tekstu. Możesz ich używać w zapytaniach za pośrednictwemCONTAINSTEXT operator.
DICTIONARY - Te indeksy są podobne do tych, które używają UNIQUE, ale w przypadku zduplikowanych kluczy zastępują istniejący rekord nowym rekordem.
Hash Index
Działa szybciej i jest bardzo lekki w użyciu na dysku. Jest trwały, transakcyjny, ale nie obsługuje zapytań o zakres. Działa jak HASHMAP, dzięki czemu jest szybszy w punktowych wyszukiwaniach i zużywa mniej zasobów niż inne typy indeksów. Różne wtyczki obsługujące ten algorytm to -
UNIQUE_HASH_INDEX- Te indeksy nie zezwalają na zduplikowane klucze. W przypadku indeksów złożonych odnosi się to do niepowtarzalności kluczy złożonych.
NOTUNIQUE_HASH_INDEX - Te indeksy zezwalają na zduplikowane klucze.
FULLTEXT_HASH_INDEX- Te indeksy są oparte na każdym pojedynczym słowie tekstu. Możesz ich używać w zapytaniach za pomocą operatora CONTAINSTEXT.
DICTIONARY_HASH_INDEX - Te indeksy są podobne do tych, które używają UNIQUE_HASH_INDEX, ale w przypadku zduplikowanych kluczy zastępują istniejący rekord nowym rekordem.
Indeks pełnotekstowy Lucene
Zapewnia dobre indeksy pełnotekstowe, ale nie można go używać do indeksowania innych typów. Jest trwały, transakcyjny i obsługuje zapytania o zakres.
Indeks przestrzenny Lucene
Zapewnia dobre indeksy przestrzenne, ale nie może być używany do indeksowania innych typów. Jest trwały, transakcyjny i obsługuje zapytania o zakres.
Tworzenie indeksów
Utwórz indeks to polecenie tworzenia indeksu w określonym schemacie.
Poniższa instrukcja przedstawia podstawową składnię do tworzenia indeksu.
CREATE INDEX <name> [ON <class-name> (prop-names)] <type> [<key-type>]
[METADATA {<metadata>}]
Poniżej znajdują się szczegółowe informacje na temat opcji w powyższej składni.
<name>- definiuje logiczną nazwę indeksu. Możesz również użyć notacji <class.property>, aby utworzyć automatyczny indeks powiązany z właściwością schematu. <class> używa klasy schematu, a <property> używa właściwości utworzonej w klasie.
<class-name>- Podaje nazwę klasy, dla której tworzysz automatyczny indeks do indeksowania. Ta klasa musi istnieć w bazie danych.
<prop-names>- Zawiera listę właściwości, które mają być indeksowane przez automatyczny indeks. Te właściwości muszą już istnieć w schemacie.
<type> - Zapewnia algorytm i typ indeksu, który chcesz utworzyć.
<key-type> - Zapewnia opcjonalny typ klucza z automatycznymi indeksami.
<metadata> - Zapewnia reprezentację JSON.
Przykład
Spróbuj wykonać następujące zapytanie, aby utworzyć automatyczny indeks powiązany z właściwością „ID” użytkownika sales_user.
orientdb> CREATE INDEX indexforID ON sales_user (id) UNIQUE
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
Creating index...
Index created successfully with 4 entries in 0.021000 sec(s)
Zapytania o indeksy
Możesz użyć zapytania wybierającego, aby pobrać rekordy w indeksie.
Spróbuj wykonać następujące zapytanie, aby pobrać klucze indeksu o nazwie „indexforId”.
SELECT FROM INDEX:indexforId
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
----+------+----+-----
# |@CLASS|key |rid
----+------+----+-----
0 |null |1 |#11:7
1 |null |2 |#11:6
2 |null |3 |#11:5
3 |null |4 |#11:8
----+------+----+-----
Upuść indeksy
Jeśli chcesz usunąć określony indeks, możesz użyć tego polecenia. Ta operacja nie usuwa połączonych rekordów.
Poniższa instrukcja przedstawia podstawową składnię do usuwania indeksu.
DROP INDEX <name>
Gdzie <name> zawiera nazwę indeksu, który chcesz usunąć.
Spróbuj wykonać następujące zapytanie, aby usunąć indeks o nazwie „ID” użytkownika sales_user.
DROP INDEX sales_users.Id
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
Index dropped successfully