直接问“我的 SQL 为什么慢”,AI 只能给泛泛建议。正确姿势是把它当作会读执行计划的 DBA。

喂给 AI 的三样东西

1. 建表语句(含索引定义)
2. EXPLAIN 输出
3. 慢 SQL 原文与表数据量级

一个典型优化案例

假设订单表按状态查询很慢,常见的优化思路是组合索引:

SELECT * FROM pay_order WHERE status = 1 ORDER BY created_at DESC LIMIT 20;
-- 问题:status 区分度低,索引扫描大量行后仍需回表排序
-- 优化:建立复合索引 (status, created_at),同时覆盖过滤与排序

让 AI 逐项核对清单

  • WHERE 条件是否命中索引,避免函数包裹字段
  • ORDER BY 是否走索引,是否存在 filesort
  • SELECT 是否可取消除星号,能否改覆盖索引
  • 深分页的大偏移是否有更优写法
  • JOIN 关联字段类型是否一致、有无索引

警惕 AI 的“优化幻觉”

让 AI 顺手优化性能时,它可能提议无脑加索引。务必要求它先说明“当前索引为何没被使用”,在测试库用 EXPLAIN 复核确认后才上生产。