数据库的三星索引

摘抄自《数据库索引设计与优化》p46:

第一颗星:如果与一个查询相关的索引行是相邻的,或者至少相距足够近的化,那这个索引就可以被标记上第一颗星。这最小化了必须扫描的索引片的宽度。

第二颗星:如果索引行的顺序于查询语句的需求一致,则索引可以被标记上第二颗星。这排除了排序需求。

第三颗星:如果索引行包含查询语句中的所有列,那么索引就可以被标记上第三颗星。这避免了访问表的操作:仅访问索引就可以了。

对于这三颗星,第三颗通常是最重要的。将一个列排除在索引之外可能会导致许多速度较慢的磁盘随机读。我们把一个至少包含第三颗星的索引称为对应查询语句的宽索引。

一个查询语句的三星索引是这个查询的最佳索引。第三颗星说的其实就是索引覆盖的问题。