You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0.29:优化LEFT JOIN查询的高效索引咨询

优化该MySQL查询的索引建议

针对你的查询场景,单独的tag_id索引无法最大化性能,推荐创建以下两个联合索引:

1. 为activity表创建覆盖联合索引

CREATE INDEX idx_activity_status_tag_id ON activity (status, tag_id, id);

这个索引的作用:

  • 优先通过status = :status过滤数据,快速缩小查询范围
  • 索引内置tag_id,直接用于和inventory的JOIN关联,无需回表读取原表数据
  • 同时包含查询需要的id字段,实现覆盖索引,彻底避免回表操作

2. 为inventory表创建覆盖联合索引

CREATE INDEX idx_inventory_tag_id_id ON inventory (tag_id, id);

这个索引的作用:

  • 通过tag_id快速匹配activity表的关联数据
  • 索引内置id字段,查询所需的inv.id可直接从索引获取,无需回表

额外验证步骤

  • 执行EXPLAIN查看查询执行计划,确认:
    • activity表的type列是否为ref或range,key列是否显示上述索引
    • inventory表的关联是否命中对应的联合索引
  • 若表数据量较大,更新表统计信息帮助优化器生成最优计划:
ANALYZE TABLE activity;
ANALYZE TABLE inventory;

内容的提问来源于stack exchange,提问作者arya asda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 00:43:23