扫码阅读
手机扫码阅读
是时候检查一下使用索引的姿势是否正确了!
37 2024-11-05
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:是时候检查一下使用索引的姿势是否正确了!
文章来源:
江南一点雨
扫码关注公众号
本文由松哥介绍数据库索引的正确使用姿势,通过具体例子帮助读者理解索引优化的方法。这是关于索引使用的系列文章的第一篇。
1. 索引列独立
在使用索引进行数据库搜索时,关键是确保索引列在搜索条件中保持独立,不参与任何表达式或运算。例如,当使用age-1=98
而非age=99
作为搜索条件时,MySQL无法利用索引进行优化,导致全表扫描。同样,对索引列使用函数运算也会导致索引失效。例如,查询最近一年出生的用户时,直接对当前日期进行计算而非对索引列birthday
运算,可以有效利用索引。
2. 巧用覆盖索引
避免使用select *
查询可以帮助利用覆盖索引提高查询效率。覆盖索引指的是查询列直接包含在索引中,从而避免了查询过程中的回表操作。主键索引存储完整数据行,而非主键索引(二级索引)仅存储主键值和索引列值。如果查询字段已经在二级索引中,那么可以直接使用这些索引而无需回表,如使用username
和address
的复合索引进行查询。但如果查询的字段不在二级索引中,如gender
,则需要回表查询。
文章最后强调,为了提高查询效率,应当尽量避免使用select *
,除非所有字段都有复合索引。下一篇文章将继续讨论相关主题。
想要了解更多内容?
查看原文:是时候检查一下使用索引的姿势是否正确了!
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线