天天看点

数据库索引知识点

什么是索引:索引是对数据库中一个或多个列进行排序的数据结构,可以提高检索速度

A:导致索引失效的一些情况

1:如果查询条件中有or,即使其中的一个条件有索引也会导致索引失效,若想使用or,则将or条件中的每个列都加上索引

2:对于多列索引,若没有使用第一部分,则不会使用索引

3:Like查询,使用%操作符时,若%在前则索引失效,在后面则没事

4:当列为字符串类型时,一定要在条件中将数据用引号括起来,否则不使用索引

5:若mySql预计使用全表扫描要比他使用索引快,则不使用索引

B:索引的原理

把字段按照一定的方式排序,索引就像书的目录,通过书的目录就能准确的定位到书籍的具体内容.

底层是B tree或B+ tree 平衡树, 把平衡树当做数据库默认的索引数据结构

C:索引的优缺点

1:增加检索速度

2:对于update/insert/delete的每次执行,字段的索引都必须重新计算更新,

        增删改数据都会改变平衡树各节点中的索引数据内容,破坏树结构

D:索引的类型

1:根据索引的顺序与数据库表的物理顺序是否相同,可以把索引分为两类,一种是数据库表的物理顺序与索引顺序相同的聚簇索引,

        另一种是不相同的非聚簇索引.

2:非聚簇索引和聚簇索引的区别在于,通过聚簇索引可以查找到需要查找的数据,而通过非聚集索引可以查找到记录对应的主键值,

再使用主键的值通过聚集索引查找需要的数据