codecamp

OrientDB指数

索引是指向数据库中数据位置的指针。索引是一种用于快速定位数据而不必搜索数据库中的每个记录的概念。 OrientDB支持四种索引算法和每种类型中的几种类型。
四种类型的指数是:

SB-Tree Index

它提供了从其他索引类型可用的功能的很好的组合。更好地用于一般效用。它是持久的,事务性的并支持范围查询。它是默认索引类型。支持此算法的不同类型插件是 - 
UNIQUE - 这些索引不允许重复键。对于复合索引,这指的是复合键的唯一性。
NOTUNIQUE - 这些索引允许重复键。
FULLTEXT - 这些索引基于文本的任何单个字。您可以通过CONTAINSTEXT运算符在查询中使用它们。
DICTIONARY - 这些索引类似于使用UNIQUE的索引,但是在重复键的情况下,它们将使用新记录替换现有记录。

Hash Index

它执行得更快,磁盘使用非常轻。它是持久的,事务性的,但不支持范围查询。它的工作原理像HASHMAP,这使得它更快的准时查找,它消耗比其他索引类型更少的资源。支持此算法的不同类型插件是:
UNIQUE_HASH_INDEX - 这些索引不允许重复键。对于复合索引,这指的是复合键的唯一性。
NOTUNIQUE_HASH_INDEX - 这些索引允许重复键。
FULLTEXT_HASH_INDEX - 这些索引基于任何单个文字。您可以通过CONTAINSTEXT运算符在查询中使用它们。
DICTIONARY_HASH_INDEX - 这些索引类似于使用UNIQUE_HASH_INDEX的索引,但是在重复键的情况下,它们将使用新记录替换现有记录。

Lucene Full Text Index

它提供了良好的全文索引,但不能用于索引其他类型。它是持久的,事务性的,并且支持范围查询。

Lucene Spatial Index

它提供了良好的空间索引,但不能用于索引其他类型。它是持久的,事务性的,并且支持范围查询。

创建索引

创建索引是一个命令,用于在特定模式上创建索引。

以下语句是创建索引的基本语法。

CREATE INDEX <name> [ON <class-name> (prop-names)] <type> [<key-type>] [METADATA {<metadata>}]
以下是上述语法中的选项的详细信息。
<name> - 定义索引的逻辑名称。 您还可以使用<class.property>表示法来创建绑定到模式属性的自动索引。 <class>使用模式的类,<property>使用在类中创建的属性。
<class-name> - 提供要创建索引的自动索引的类的名称。 此类必须存在于数据库中。
<prop-names> - 提供属性列表,您希望自动索引建立索引。 这些属性必须已在模式中存在。
<type> - 提供要创建的索引的算法和类型。
<key-type> - 提供带有自动索引的可选键类型。
<metadata> - 提供JSON表示。

尝试以下查询以创建绑定到用户sales_user的属性“ID”的自动索引。

orientdb> CREATE INDEX indexforID ON sales_user (id) UNIQUE

如果上面的查询执行成功,你会得到下面的输出。

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

查询索引

您可以使用select query获取索引中的记录。

尝试以下查询以检索名为“indexforId”的索引的键。

SELECT FROM INDEX:indexforId 

如果上面的查询执行成功,你会得到下面的输出。

----+------+----+----- 
#   |@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 

如果上面的查询执行成功,你会得到下面的输出。

Index dropped successfully 
OrientDB序列
OrientDB事务
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }