索引的目的是什么

  • 快速访问表中的特定信息,提高检索速度
  • 创建唯一性索引,保证数据库表中每一行数据的唯一性
  • 加速表与表之间的连接
  • 使用分组和排序字句进行数据检索时,可以显著减少查询分组和排序的时间

索引队数据库系统的负面影响

  • 创建和维护索引需要耗费时间,这个时间随着数据量的增加而增加
  • 索引需要占用物理空间,不光是表需要占用数据空间,每个索引也都需要占用物理空间。
  • 当对表进行增删改的时候索引也需要动态维护,这就降低了数据的维护速度

为数据表简历索引的原则

  • 在最频繁使用的、用以缩小查询范围的字段上建立索引
  • 在频繁使用的、需要排序的字段上建立索引

什么情况下不宜建立索引

  • 查询中很少涉及的列或者是重复值比较多的列
  • 对于一些特殊的数据类型,比如text等

数据库索引中为什么使用B+树而不是其他的树形结构

因为B树不管是叶子节点还是非叶子节点,都会保存数据,导致在非叶子节点中能保存的指针数量变少。

指针少的情况下要保存大量的数据,只能增加树的高度,导致IO操作变多,查询性能变低。