索引(index)机制的本质是一种检索加速机制

查询原理:

一张数据表中默认id是按顺序升序排列的,若要根据id来查找一条记录,就可以使用多种查找算法提高检索效率,如二分查找等。既然表是按id升序的那么其他字段就肯定是乱序的,所以如果要根据其他字段来查找数据的话,就不能使用高效的查找算法,只能一条一条线性查找去匹配,非常慢。这是就需要建立索引。

索引机制:

建立一个索引就会新建一个只包含两列的附加索引表,索引表中其中一列为索引字段,另一列则包含一个指针指向原记录,且索引表是按照索引字段键值排过序的。这样在对索引列进行查询的时候,RDBMS会先对索引表采用二分法进行查询定位操作,完了再通过指针映射到原表并返回结果。

从本质上来说,这是一种牺牲空间换取时间的办法,索引建立不但耗费存储资源,而且会降低更新、删除等操作的效率

  • 索引的优点:
1.通过创建唯一索引,可以保证数据库每一行数据的唯一性
  2.可以大大提高查询速度
  3.可以加速表与表的连接
  4.可以显著的减少查询中分组和排序的时间。
  • 索引的缺点:
1.创建索引和维护索引需要时间,而且数据量越大时间越长
  2.创建索引需要占据磁盘的空间,如果有大量的索引,可能比数据文件更快达到最大文件尺寸
  3.当对表中的数据进行增加,修改,删除的时候,索引也要同时进行维护,降低了数据的维护速度

不要小瞧索引的优缺点,这点知识面试经常问到,记下来