MySQL 面试题:索引


什么是索引?

  • 是一种快速查询表中内容的机制,类似于新华字典的目录。
  • 对按特定列的数据排序存储。

索引设计原则?

什么时候【要】创建索引

(1)表经常进行 SELECT 操作
(2)表很大(记录超多),记录内容分布范围很广(列值区分度高)
(3)列名经常在 WHERE 子句或连接条件中出现

什么时候【不要】创建索引

(1)表经常进行 INSERT/UPDATE/DELETE 操作
(2)表很小(记录超少)
(3)列名不经常作为连接条件或出现在 WHERE 子句中

索引优缺点

  • 索引加快数据库的检索速度
  • 索引降低了插入、删除、修改等维护任务的速度(虽然索引可以提高查询速度,但是它们也会导致数据库系统更新数据的性能下降,因为大部分数据更新需要同时更新索引)
  • 唯一索引可以确保每一行数据的唯一性,通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能
  • 索引需要占物理和数据空间