索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低io的次数,从而提高数据访问性能,索引有很多种,我们主要介绍常用的几种:
为什么添加了索引之后,会加快查询速度?
索引会使数据库引擎进行类似二分查找的方法进行查询,速度会快很多,这点和hashmap的原理很像;可参考下图:
如何建立索引:
①:单列索引
create index 索引名 on 表名(列名);
②:复合索引:
create index 索引名 on 表名(列名1,,列名2);
举例:
create table users(name varchar2(30),age number,email varchar2(36));
create index inx_name on users(name);
索引的使用原则:
①:在大表上建立索引才有意义;
小表的资源太少,索引本身也是资源,这样会浪费资源;
②:在where子句或是连接条件上经常引用的列上建立索引
③:索引的层次不要超过4层;
④:在逻辑型类型字段上,或者值就是固定几种的列上也不要建立索引;
索引也会消耗资源的
索引是要维护的,增删改等操作都需要维护索引