索引与游标
获取存储在 SmartEDB 中的对象的过程称为导航。与其它数据库一样,SmartEDB 会使用索引,根据键值导航到对象。
SmartEDB 同样支持游标的传统定义:即游标是代表因索引搜索操作而得出的数据库对象集合中某个位置的实体。
为类声明的任何索引在执行插入、更新或删除操作时添加或删除键都会增加性能开销。对于每个受影响的键的索引,这种开销都会成倍增加;因此,应谨慎声明索引,避免在不需要的地方声明索引。
索引类型
正如在基本概念中所解释的那样,SmartEDB 提供了多种专门的索引,以方便特定类型的数据库搜索和浏览。请使用以下表格中的链接获取有关不同索引功能的说明和示例:
索引 | |
---|---|
B 树 | B 树索引简介 |
Patricia树索引 | Patricia Trie 索引简介;管理 IP 地址示例 |
R 树 | R 树索引简介;使用空间坐标示例 |
KD 树 | KD 树索引简介;通过示例查询的示例使用 |
三元索引 | 三元组索引在文本搜索中的介绍 |
哈希和自动标识符 | 哈希、自动编号索引和唯一对象 ID 搜索简介 |
列表索引 | 列表索引简介 |
游标
SmartEDB 游标代表了涉及索引的搜索操作所得结果集中的一个位置。该游标本质上是对结果集中对象集合的迭代器。虽然 C# 和 Java 应用程序直接实例化游标对象,但在 C 和 C++ 应用程序中,游标是由生成的函数创建的。
大小写敏感性和空字符串
在对 ASCII 字符串进行排序时,默认情况下字符串的字母顺序是区分大小写的。
有关更改此默认行为的详细信息,请参阅“大小写敏感性”页面。 当索引包含空值或“空”字符串时,空字符串在排序时始终会被视为“小于”非空字符串;也就是说,在比较操作中,具有空字符串值的键的值将小于任何其他字符串。在比较两个具有空字符串的键时,它们的值将视为相等,而其他键(如果这是复合索引)将决定排序顺序;如果不是复合索引,则最终的排序顺序将基于数据库对象的基本内存地址。
本机语言 API
用于管理索引和游标的 API 和结构特定于所使用的编程语言。请使用以下链接查看您开发环境的详细说明和示例:
开发语言 | 说明 |
---|---|
C / C++ | C / C++ 语言的索引和游标 |
Java | Java 语言的索引和游标 |
C# | C# 语言的存储设备规格 |