1. 使用索引的基本事项
(1)对于经常以查询关键字为基础的表,并且该表中
的数据行是均匀分布的建议创建索引。
(2)以查询关键字为基础,表中的数据行随机排序的
表建议创建索引。
(3)表中包含的列数相对较少。
(4)表中的大多数查询都包含相对简单的 WHERE 子
句。
2. 避免对索引列使用 NOT 关键字
Select * from student where sid > 2;
Select * from student where not sid <= 2;
如果 sid 列是主键列,所以该列上有索引,如果使
用第一条语句,Oracle 会使用索引进行查询;而如果
使用第二条语句,Oracle 会进行全表扫描。
实际上,索引的作用是快速地告诉我们在表中有
什么数据,而不能告诉我们在表中没有什么数据。类
似的像“!=”,like 都应该避免在索引列上使用,会引
起全表扫描。
3. 避免对唯一索引列使用 IS(NOT) NULL
使用 UNIQUE 关键字可以为列添加唯一索引,也
就是说列的值不允许有重复值,但是,多个 NULL 值却
可以同时存在,因为 Oracle 认为两个空值是不相等的。
所以,在向表中的唯一索引列添加数据时,可以
添加无数条 NULL 记录,但是由于这些记录都是空值,
所以在索引中并不存在这些记录。