OrientDB 教程

OrientDB 主页 OrientDB 概述 OrientDB 下载安装和环境配置 OrientDB 基本概念 OrientDB 数据类型 OrientDB 控制台模式

OrientDB 数据库命令

OrientDB 创建数据库 OrientDB 更改数据库 OrientDB 备份数据库 OrientDB 恢复数据库 OrientDB 连接数据库 OrientDB 断开数据库 OrientDB 信息数据库 OrientDB 列出数据库 OrientDB 冻结数据库 OrientDB 释放数据库 OrientDB 配置数据库 OrientDB 导出数据库 OrientDB 导入数据库 OrientDB 提交数据库 OrientDB 回滚数据库 OrientDB 优化数据库 OrientDB 删除数据库

OrientDB 记录命令

OrientDB 插入记录 OrientDB 显示记录 OrientDB 加载记录 OrientDB 重新加载记录 OrientDB 导出记录 OrientDB 更新记录 OrientDB 截断记录 OrientDB 删除记录

OrientDB 类命令

OrientDB 创建类 OrientDB 更改类 OrientDB 截断类 OrientDB 删除类

OrientDB 集群命令

OrientDB 创建集群 OrientDB 更改群集 OrientDB 截断群集 OrientDB 删除群集

OrientDB 属性命令

OrientDB 创建属性 OrientDB 更改属性 OrientDB 删除属性

OrientDB 顶点命令

OrientDB 创建顶点 OrientDB 移动顶点 OrientDB 删除顶点

OrientDB 边命令

OrientDB 创建边 OrientDB 更新边 OrientDB 删除边

OrientDB高级概念

OrientDB 函数 OrientDB 序列 OrientDB 索引 OrientDB 事务 OrientDB 钩子 OrientDB 缓存 OrientDB 日志 OrientDB 性能调优 OrientDB 升级 OrientDB 安全 OrientDB Studio

OrientDB 接口

OrientDB Java 接口 OrientDB Python 接口

OrientDB 有用资源

OrientDB 快速指南 OrientDB 有用资源 OrientDB 讨论


OrientDB - 索引

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

四种类型的索引是 −

SB-Tree 索引

它提供了其他索引类型提供的良好功能组合。最好将其用于一般用途。它耐用、事务性强并支持范围查询。它是默认索引类型。支持此算法的不同类型插件是 −

  • UNIQUE − 这些索引不允许重复键。对于复合索引,这指的是复合键的唯一性。

  • NOTUNIQUE −这些索引允许重复的键。

  • FULLTEXT − 这些索引基于任何单个文本单词。您可以通过 CONTAINSTEXT 运算符在查询中使用它们。

  • DICTIONARY − 这些索引与使用 UNIQUE 的索引类似,但在重复键的情况下,它们会用新记录替换现有记录。

哈希索引

它执行速度更快,磁盘使用量非常小。它耐用、事务性强,但不支持范围查询。它的工作原理类似于 HASHMAP,这使得它在准时查找时速度更快,并且比其他索引类型消耗的资源更少。支持此算法的不同类型插件是 −

  • UNIQUE_HASH_INDEX −这些索引不允许重复的键。对于复合索引,这指的是复合键的唯一性。

  • NOTUNIQUE_HASH_INDEX − 这些索引允许重复的键。

  • FULLTEXT_HASH_INDEX − 这些索引基于任何单个文本单词。您可以通过 CONTAINSTEXT 运算符在查询中使用它们。

  • DICTIONARY_HASH_INDEX − 这些索引类似于使用 UNIQUE_HASH_INDEX 的索引,但在重复键的情况下,它们会用新记录替换现有记录。

Lucene 全文索引

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

Lucene 空间索引

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

创建索引

Create 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)

查询索引

您可以使用选择查询来获取索引中的记录。

尝试以下查询来检索名为"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