索引是一组指向表行的指针,基于一个或多个表列中数据值的顺序。索引是数据库对象。索引创建之后由 UltraLite 自动维护。可以创建一个或多个索引以提高查询性能,或者根据创建的索引类型,以确保行值保持唯一。
索引根据部分或所有列中的值对表的行进行排序。创建索引时,您选择要索引的列的顺序会成为列实际出现在索引中的顺序。因此,有策略地使用索引时,可以大大地提高索引列上的搜索性能。
UltraLite 支持以下索引。这些索引可以是单列索引或多列索引(也称为复合索引)。无法为 LONG VARCHAR 或 LONG BINARY 列创建索引。
索引 | 特性 |
---|---|
主键 | 必需。唯一键的一个实例。只能有一个主键。索引列中的值必须唯一且不能为 NULL。 |
外键 1 | 可选。索引列中的值可以重复。空性取决于创建列时是否允许 NULL 值。外键列中的值必须存在于被引用的表中 |
唯一键 2 | 可选。索引列中的值必须唯一且不能为 NULL。 |
非唯一索引 | 可选。索引列中的值可以重复并且可以为 NULL。 |
唯一索引 | 可选。索引列中的值不能重复但可以为 NULL。 |
1 外键可以引用主键或唯一键。
2 也称为唯一约束。
在满足以下条件的任何列上创建索引:
创建复合索引时,索引的第一列应为查询中的谓语最常用到的列。
确保索引不会过高地增加设备内存方面的更新维护开销。
不要创建或维护不必要的索引:修改列中的数据时必须更新索引,因此也会对索引执行所有插入、更新和删除操作。
在大表上创建索引。
不要创建冗余索引。例如,如果您在表 T 上用列 (x,y) 创建索引,如果表 T 上已经存在使用列 (x, y, z) 创建的另一个索引,则您创建了冗余索引。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |