扫码阅读
手机扫码阅读

是时候检查一下使用索引的姿势是否正确了!

37 2024-11-05

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:是时候检查一下使用索引的姿势是否正确了!
文章来源:
江南一点雨
扫码关注公众号

本文由松哥介绍数据库索引的正确使用姿势,通过具体例子帮助读者理解索引优化的方法。这是关于索引使用的系列文章的第一篇。

1. 索引列独立

在使用索引进行数据库搜索时,关键是确保索引列在搜索条件中保持独立,不参与任何表达式或运算。例如,当使用age-1=98而非age=99作为搜索条件时,MySQL无法利用索引进行优化,导致全表扫描。同样,对索引列使用函数运算也会导致索引失效。例如,查询最近一年出生的用户时,直接对当前日期进行计算而非对索引列birthday运算,可以有效利用索引。

2. 巧用覆盖索引

避免使用select *查询可以帮助利用覆盖索引提高查询效率。覆盖索引指的是查询列直接包含在索引中,从而避免了查询过程中的回表操作。主键索引存储完整数据行,而非主键索引(二级索引)仅存储主键值和索引列值。如果查询字段已经在二级索引中,那么可以直接使用这些索引而无需回表,如使用usernameaddress的复合索引进行查询。但如果查询的字段不在二级索引中,如gender,则需要回表查询。

文章最后强调,为了提高查询效率,应当尽量避免使用select *,除非所有字段都有复合索引。下一篇文章将继续讨论相关主题。

想要了解更多内容?

查看原文:是时候检查一下使用索引的姿势是否正确了!
文章来源:
江南一点雨
扫码关注公众号