- 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 <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 查询获取索引中的记录。
尝试以下查询以检索名为“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