使用索引的三原则

在选择索引和编写利用这些索引的查询时,有如下3个原则始终需要记住:

  1. 单行访问是很慢的。
    特别是在机械硬盘存储中(SSD的随机I/O要快很多,不过这一点仍然成立)。如果服务器从存储中读取一个数据块只是为了获取其中一行,那么就浪费了许多工作。最好读取的块中能包含尽可能多所需要的行。使用索引可以创建位置引用以提升效率。

  2. 按顺序访问范围数据是很快的。
    原因1:顺序I/O不需要多次磁盘寻道,所以比随机I/O要快很多(特别是对机械硬盘)。
    原因2:如果服务器能够按需要顺序读取数据,那么就不需要额外的排序操作,并且GROUP BY 查询也无须再做排序和将行按组进行聚合计算了。

  3. 索引覆盖查询是很快的。
    如果一个索引包含了查询所需要的所有列,那么存储引擎就不需要再回表查找行。这避免了大量的单行访问。

总的来说:编写查询语句,应该尽可能选择合适的索引以避免单行查找,尽可能地使用数据原生顺序从而避免额外的排序操作,并尽可能使用索引覆盖查询

发布了15 篇原创文章 · 获赞 0 · 访问量 303

猜你喜欢

转载自blog.csdn.net/sinat_15051577/article/details/103925542