索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低i/o次数,从而提高数据访问性能,索引有很多种,我们主要介绍常用的几种;
单列索引
单列索引是基于单个列所建立的索引
比如:create index 索引名 on 表名(列名)
复合索引
复合索引是基于两列或是多列的索引。在同一张表上可以有多个索引,但是要求列的组合(包括顺序)必须不同,比如以下是两个不同的索引
create index emp_index1 on emp(ename,job);
create index emp_index1 on emp(job,ename);
索引使用原则
<1在大表上建立索引才有意思
<2在where字句或是连接条件上经常引用的列上建立索引
<3索引的层次不要超过四层
索引有一些先天不足
<1.建立索引,系统要占用大约表的1.2倍的硬盘和内存空间来保存索引
<2.更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维护数据和索引的一致性
实践表名,不恰当的索引不但于事无补,反而会降低系统性能,因为大量的索引在进行插入,修改和删除操作时比没有索引花费更多的系统时间