OrientDB指數(shù)

2018-12-24 09:59 更新

索引是指向數(shù)據(jù)庫中數(shù)據(jù)位置的指針。索引是一種用于快速定位數(shù)據(jù)而不必搜索數(shù)據(jù)庫中的每個記錄的概念。 OrientDB支持四種索引算法和每種類型中的幾種類型。
四種類型的指數(shù)是:

SB-Tree Index

它提供了從其他索引類型可用的功能的很好的組合。更好地用于一般效用。它是持久的,事務性的并支持范圍查詢。它是默認索引類型。支持此算法的不同類型插件是 - 
UNIQUE - 這些索引不允許重復鍵。對于復合索引,這指的是復合鍵的唯一性。
NOTUNIQUE - 這些索引允許重復鍵。
FULLTEXT - 這些索引基于文本的任何單個字。您可以通過CONTAINSTEXT運算符在查詢中使用它們。
DICTIONARY - 這些索引類似于使用UNIQUE的索引,但是在重復鍵的情況下,它們將使用新記錄替換現(xiàn)有記錄。

Hash Index

它執(zhí)行得更快,磁盤使用非常輕。它是持久的,事務性的,但不支持范圍查詢。它的工作原理像HASHMAP,這使得它更快的準時查找,它消耗比其他索引類型更少的資源。支持此算法的不同類型插件是:
UNIQUE_HASH_INDEX - 這些索引不允許重復鍵。對于復合索引,這指的是復合鍵的唯一性。
NOTUNIQUE_HASH_INDEX - 這些索引允許重復鍵。
FULLTEXT_HASH_INDEX - 這些索引基于任何單個文字。您可以通過CONTAINSTEXT運算符在查詢中使用它們。
DICTIONARY_HASH_INDEX - 這些索引類似于使用UNIQUE_HASH_INDEX的索引,但是在重復鍵的情況下,它們將使用新記錄替換現(xiàn)有記錄。

Lucene Full Text Index

它提供了良好的全文索引,但不能用于索引其他類型。它是持久的,事務性的,并且支持范圍查詢。

Lucene Spatial Index

它提供了良好的空間索引,但不能用于索引其他類型。它是持久的,事務性的,并且支持范圍查詢。

創(chuàng)建索引

創(chuàng)建索引是一個命令,用于在特定模式上創(chuàng)建索引。

以下語句是創(chuàng)建索引的基本語法。

CREATE INDEX <name> [ON <class-name> (prop-names)] <type> [<key-type>] [METADATA {<metadata>}]
以下是上述語法中的選項的詳細信息。
<name> - 定義索引的邏輯名稱。 您還可以使用<class.property>表示法來創(chuàng)建綁定到模式屬性的自動索引。 <class>使用模式的類,<property>使用在類中創(chuàng)建的屬性。
<class-name> - 提供要創(chuàng)建索引的自動索引的類的名稱。 此類必須存在于數(shù)據(jù)庫中。
<prop-names> - 提供屬性列表,您希望自動索引建立索引。 這些屬性必須已在模式中存在。
<type> - 提供要創(chuàng)建的索引的算法和類型。
<key-type> - 提供帶有自動索引的可選鍵類型。
<metadata> - 提供JSON表示。

嘗試以下查詢以創(chuàng)建綁定到用戶sales_user的屬性“ID”的自動索引。

orientdb> CREATE INDEX indexforID ON sales_user (id) UNIQUE

如果上面的查詢執(zhí)行成功,你會得到下面的輸出。

Creating index... 
Index created successfully with 4 entries in 0.021000 sec(s)

查詢索引

您可以使用select query獲取索引中的記錄。

嘗試以下查詢以檢索名為“indexforId”的索引的鍵。

SELECT FROM INDEX:indexforId 

如果上面的查詢執(zhí)行成功,你會得到下面的輸出。

----+------+----+----- 
#   |@CLASS|key |rid   
----+------+----+----- 
0   |null  |1   |#11:7 
1   |null  |2   |#11:6 
2   |null  |3   |#11:5 
3   |null  |4   |#11:8 
----+------+----+-----

刪除索引

如果你想刪除一個特定的索引,您可以使用此命令。此操作不會刪除鏈接的記錄。

下面的語句是基本語法刪除索引。

DROP INDEX <name>

其中<name>為您提供要刪除索引的名稱。

試試下面的查詢來刪除名為用戶sales_user的“ID”的指標。

DROP INDEX sales_users.Id 

如果上面的查詢執(zhí)行成功,你會得到下面的輸出。

Index dropped successfully 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號