SQL 编写与优化 · 程序员
用 AI 智能体做这件事
SQL 容易跑得通但很慢。这个场景先声明数据库平台与版本、表结构、字段含义和已有索引,再产出可运行的 SQL、逐段解释和优化建议(索引、写法、慢查询风险)。表结构或索引没给全的标【待补】,不然慢查询风险判断不准。
你需要准备
- 数据库平台与版本(MySQL / PostgreSQL)
- 相关表结构与字段含义(缺失先标【待补】)
- 已有索引(没给就拿不准慢查询风险)与数据量级
- 查询需求与统计口径(时间范围、去重规则、按什么维度)
- 运行环境:测试库还是生产库(生产库只读,不要在其上试写)
怎么做
- 先声明数据库平台与版本
- 若表结构或连接串含敏感字段,先脱敏;写明是测试库还是生产库
- 贴表结构、索引与查询需求,粘贴提示词
- 在测试库执行并与 EXPLAIN 对照,核对【待补】项后再上生产
一句话提示词
我用的是【MySQL/PostgreSQL】,数据库平台与版本、下面这几张表的结构、字段含义和已有索引我贴给你,帮我写一条 SQL 实现【查询需求】:先给能跑通的版本,再解释每个部分在做什么,最后给优化建议(索引、写法、潜在的慢查询风险);我未提供的表结构或索引请标【待补】,不要编造。
它会交付什么
- 能跑通的 SQL
- 逐段解释:每个部分在做什么
- 优化建议:索引、写法、潜在的慢查询风险(属 AI 建议,需人工判断,上线前须在测试库验证)
效果示例
输入 MySQL 的两张订单表结构与已有索引 + 「近 7 天各渠道复购率」需求 → 输出可运行 SQL 与索引建议;缺失的索引信息标【待补】。(建议需人工判断)
常见问题
不给表结构和索引行吗?
不行。字段名不确定写不对,索引不明判断不了慢查询风险,缺的会标【待补】。
SQL 能直接上生产吗?
先在测试库跑通并看 EXPLAIN;优化建议属 AI 判断,需人工判断后再上。
表里字段敏感怎么办?
表结构里的敏感字段和连接串先脱敏,生产库只读、不要在其上试写。
结果条数一定准吗?
统计口径没给全会偏差;涉及计数、汇总的结果需人工复核。