一、索引设计原则
优先使用覆盖索引:如果查询只需要索引中的字段,直接创建覆盖索引,避免回表查询,效率能大幅提升。
合理设计联合索引:遵循最左前缀原则,把高频查询条件放在前面,比如(a, b, c)的索引能支持a、a AND b、a AND b AND c的查询。
避免索引失效:
前导模糊查询(如LIKE '%XX')无法使用索引,尽量用LIKE 'XX%'。
负向条件(如!=、NOT IN)通常不走索引,可改用IN或EXISTS优化。
二、SQL优化技巧
分页查询优化:避免LIMIT 10000, 10这种深度分页,改用WHERE id > 10000 LIMIT 10,减少扫描行数。
排序优化:如果排序字段不在索引中,可先查主键再回表,减少排序数据量。
条件顺序优化:MySQL对查询条件的顺序不敏感,但确保索引字段在前能提高效率。
三、执行计划分析
用EXPLAIN查看执行计划,确认索引是否被使用(type为ref或range表示有效)。
关注Handler_read_rnd_next指标,值高说明索引利用不理想。
四、索引维护
定期用ANALYZE TABLE更新索引统计信息,避免优化器选错索引。
索引不是越多越好,频繁更新的表要谨慎添加,避免写性能下降。
五、其他注意事项
避免对大字段(如长文本)建普通索引,考虑前缀索引或全文索引。
结合业务逻辑设计索引,比如高频查询字段优先建索引。
508

被折叠的 条评论
为什么被折叠?



