什么是索引:包含了数据库表的所有数据的引用指针,在innodb中是表空间的一部分,在Myisam中保存在一张表中。
原理:查找一个字段的平均效率是N/2,为表中的一个字段建立索引,将创建一个额外的数据结构包含了字段数值和指针,然后对该数据结构进行了排序
在该排序列的基础上查找可以使用二分法查找,所以效率更高。
索引的分类:普通索引,唯一索引,全文索引,单一索引和组合索引。
索引失效的几种方式:
1.无条件的时候
2.条件中存在<>
3.条件中字符串没有用''
4.模糊查询 %在前面
5.条件中有or
6.not in
7.对索引列进行计算
explain + sql查询sql的效率
key : null表示没有应用索引
type const > eq_reg > ref > range > index > all