慢查询改写与索引方案提示词

给慢查询与表结构 → 得到改写语句与索引方案

更新于 今天

适用场景

  • 慢查询改写评审
  • 加索引变更窗口前确认
  • 接口性能优化排期
PROMPT
【指令】
1. 把订单统计慢查询改写到一秒内,并给出对应索引建法;
2. 保留原有返回字段与排序,不改动前端调用的接口签名;
3. 同时输出改写前后的执行计划对比,标出扫描行数变化;
4. 用线上真实数据分布验证,不许用构造数据代替。

【上下文】
1. 表为订单主表,现有八百万行,索引只有主键与商户单列;
2. 业务要求同一查询兼顾按商户聚合与按日区间统计两种用法;
3. 线上为 MySQL 8.0,允许加联合索引,加索引要走变更窗口;
4. 该接口每分钟被调用约四十次,是首页看板的数据来源。

【输入数据】
1. 原语句按商户分组统计近三十天金额,带状态与创建时间过滤;
2. 字段为 id 主键、merchant_id、status、amount、create_time、pay_time;
3. 现有索引仅 PRIMARY 与 merchant_id 单列,status 上没有索引;
4. 执行计划显示全表扫描,预估行数 800 万,过滤后约 12 万行。

【输出要求】
1. 先给改写后的完整语句,不写省略号与伪代码;
2. 再给索引语句,写明字段顺序与选择该顺序的理由;
3. 附执行计划对比表,列出扫描方式、预估行数与耗时三列;
4. 最后写三条变更窗口执行注意事项,总长控制在一百二十字内。
标签
性能优化 数据库