索引的 统计和使用是数据库自动完成的,不需要手动植入代码 ,
开发者只需要确认对哪些字段或者字段组合是否创建索引就可以了。
字段被创建的索引不一定就非得起效,和sql语句使用的条件有关系,
比如 LIKE 关键 对索引就是无效的。
创建索引的语法为:CREATE INDEX idx_表名_字段名 ON 表名(字段名或字段组合);
如果经常 使用ORDER BY子句,进行多字段排序,使用这种复合索引比较有效。
对了 ,索引的使用一般在WERER条件中使用,也可以使用在DISTINCT去重,还可以
创建基于函数的所用,比如SELECT * FROM xxx WHERE UPPER(xxx) = ‘XXX‘;
如果 对UPPER函数创建索引:
CREATE INDEX idx_表名_字段名 ON 表名(UPPER(xxx));
在查询时也能提提高效率。
索引需要定期重建,主要应对数据表的更新,使得索引更精确,保证查询效率。
所以这就说明添加索引尽量对DML操作少的表字段进行比较好。
重建索引的 语法为:
ALTER INDEX idx_表名_字段名 REBULID;
如果一张表里面的索引创建不合理,包括索引没有经常更新,不仅不会提升查询效率,
反而还会降低查询效率。可以考虑删除索引:
删除索引语法:
DROP INDEX idx_表名_字段名 ;
那么创建索引的原则是什么呢:
1.一般不再数据量小的表中创建索引。一万条以下可以不用考虑了。
2.在经常出现在WHERE条件中的字段添加所以。不如多表的 连接条件可以考虑添加索引。
3.不建议经常在DML表中添加索引。
4.考虑在经常出现在ORDER BY ,DISTINCT等后的字符添加索引。若是复合索引,
需要保证添加索引的字符顺序与使用时字段的顺序一致。
5.索引并不是越多越好,一张表的索引需要个数不易太多。需要删除不常使用的索引。
以上条件需要实际测试。根据自身环境确定一个比较好的索引原则。
关于Oracle中索引的使用