1. 什么是索引?
索引是存储引擎用于提高数据库表的访问速度的一种数据结构。
2. 索引的优缺点?
优点:
- 加快数据查找的速度
- 为用来排序或者是分组的字段添加索引,可以加快分组和排序的速度
- 加快表与表之间的连接
缺点:
- 建立索引需要占用物理空间
- 会降低表的增删改的效率,因为每次对表记录进行增删改,需要进行动态维护索引,导致增删改时间变长
3. 索引的作用?
数据是存储在磁盘上的,查询数据时,如果没有索引,会加载所有的数据到内存,依次进行检索,读取磁盘次数较多。有了索引,就不需要加载所有数据,因为B+树的高度一般在2-4层,最多只需要读取2-4次磁盘,查询速度大大提升。
4. 什么情况下需要建索引?
1. 经常用于查询的字段
2. 经常用于连接的字段建立索引,可以加快连接的速度
3. 经常需要排序的字段建立索引,因为索引已经排好序,可以加快排序查询速度
5. 什么情况下不建索引?
1. where 条件中用不到的字段不适合建立索引
2. 表记录较少
3. 需要经常增删改
4. 参与列计算的列不适合建索引
5. 区分度不高的字段不适合建立索引,如性别等