使用数据库索引,可以减少数据的访问,从而提成查询的效率(但是索引会增加插入、修改和删除的效率),索引使用的好,可以让性能提升,如果使用不好,反而会降低性能。
- 索引的类型
B-TREE索引、位图索引、全文索引等,最常用的就是B-TREE索引,而且包括很多扩展索引,比如组合索引,函数索引,反向索引等。
- 什么是B-TREE索引
也称为平衡树索引(Balance Tree),它是一种按字段排好序的树形目录结构。
一个普通的BTREE索引结构示意图如下所示:
如果我们把一个表的内容认为是一本字典,那索引就相当于字典的目录。一个字典按部首+笔划数的目录,相当于给字典建了一个按部首+笔划的组合索引。
- 索引失效
【索引失效】这点非常非常的重要,不是说你加上索引了,就永远会有效,错误的SQL书写会导致索引失效。
- 不等于操作:? 、not in(”)
- 进行了运算后的字段:column+1(简单的运算),function(column)(函数)
- 含前导模糊查询:like ‘%xxx’
- IS NULL
- 隐式类型转换:column是char类型,但是写成column = 123(右边是另外一种类型)