页面转圈转了8秒,老板问:”这么慢?”你不知道慢在哪。
后台”订单列表”刚上线点开一秒就出来。三个月后数据涨到几十万条,同一个页面要转 8 秒。老板皱眉问你,你只能说”我看看”——打开代码看着那段 SQL,你也不知道它慢在哪儿。
这一篇讲两件事:
- 不会写 SQL,怎么让 AI 帮你把数据查出来;
- 查出来了但很慢,怎么让 AI 帮你找到原因并改快。
(这篇不要求你会写 SQL,只要会描述”我要什么数据”就行。)
一、先花两分钟,搞懂 SQL 是个啥
SQL 不是编程语言,它更像你对数据库说的一句人话,只是要用固定格式。
数据库里的数据就像一张张 Excel 表:一张表 = 一个工作表,一列 = 一列,一行 = 一条记录。那 SQL 就是你在跟这张表说话:
| 你想干嘛 | SQL 里的词 | 对应 Excel 操作 |
|---|---|---|
| 看某几列 | SELECT |
选中某几列 |
| 从哪张表看 | FROM |
打开哪个工作表 |
| 只看符合条件的 | WHERE |
筛选 |
| 按某列排个序 | ORDER BY |
排序 |
| 只看前 20 条 | LIMIT |
只看前 20 行 |
| 按类别汇总 | GROUP BY |
数据透视表 |
看懂这张表,就能看懂 80% 的日常 SQL 了。

二、让 AI 写 SQL:先喂”三件套”
最关键的一步,90% 的人第一次让 AI 写 SQL 失败,都是跳过了它。
你直接问:”帮我写个查订单的 SQL。” AI 给你一段专业代码——一跑报错:字段不存在。因为它不知道你的表长什么样,只能猜,猜你表叫 orders、字段叫 order_id、amount,而你的可能叫 t_order、order_no、total_fee。
AI 编造字段名,是 SQL 场景第一大坑。
所以在让 AI 写之前,必须先喂它三件套:
| 件 | 是什么 | 怎么拿 |
|---|---|---|
| ① 表结构 | 建表语句(CREATE TABLE ...) |
数据库工具右键表 → “生成建表语句”/”DDL” |
| ② 样例数据 | 真实的 3 行数据 | SELECT * FROM 表名 LIMIT 3,复制结果 |
| ③ 字段含义 | 字段啥意思、有哪些取值 | 自己写一句,如”status:1待付款 2已付款 3已取消” |
第③件最易被忽略,但价值最高:status=2 是”已付款”还是”已发货”只有你知道,不说 AI 只能瞎猜。

三、提需求四个字:表、要、筛、排
三件套是”背景资料”,接下来是”你到底想要什么”。描述查询需求记四个字:表、要、筛、排。
| 字 | 问自己 | 举例 |
|---|---|---|
| 表 | 数据在哪几张表 | 订单表,还要带用户手机号(用户表) |
| 要 | 要哪几列 | 订单号、金额、下单时间、手机号 |
| 筛 | 只要什么条件 | 已付款、最近 7 天、金额 > 100 |
| 排 | 怎么排、汇不汇总、要几条 | 按下单时间倒序,只前 50 条 |
把这四条说清,AI 写出来的 SQL 基本一次就能用。
反面:”帮我查一下最近的订单。”(AI 只能猜)
正面:”查订单表,要订单号、金额、下单时间,关联用户表带出手机号;只要状态已付款(status=2)且最近7天;按下单时间倒序,只前50条。”
是不是发现,你不需要懂 SQL——只需要把话说清楚。
四、慢查询治理:量、看、改、验
SQL 能跑但很慢。治理四步走:量、看、改、验。

第一步:量 —— 先拿到数字
没有数字,就没有优化。 动手前先搞清三个数:
- 这条 SQL 实际跑多久(数据库工具执行都显示耗时)
- 这张表现在多少行(
SELECT COUNT(*) FROM 表名) - 用户能忍多久(1 秒内无感,3 秒分水岭,超 5 秒算卡死)
反面:一条 0.3 秒的查询,你花两天优化到 0.1 秒——用户完全没感觉,纯浪费生命。
第二步:看 —— 让 AI 读执行计划
执行计划是数据库自己告诉你”怎么执行的”。怎么拿?在 SQL 前加一个词:EXPLAIN。跑一下出一张表,看不懂没关系——原样复制丢给 AI。 全篇最省力的一招:你不用成数据库专家,只要会复制粘贴。
第三步:改 —— 提速四板斧
AI 的优化建议逃不出这四招:
| 招 | 意思 | 什么时候用 |
|---|---|---|
| 索 | 加索引 | 某列常拿来筛选/排序,却没索引 |
| 少 | 少取列、少取行 | 用了 SELECT *,或没加 LIMIT |
| 批 | 批量代替循环 | for 循环里一条条查库(N+1 问题) |
| 拆 | 复杂查询拆开 / 提前算好 | 一条 SQL 关联七八张表还带子查询 |
优先级:索 > 少 > 批 > 拆。 加索引通常改一行、不动业务代码、见效最快——很多”8 秒变 0.2 秒”就是加了个索引。
关于索引三句话:
- ① 常用来 WHERE/ORDER BY 的列才值得建;
- ② 建了不等于用得上,改完再
EXPLAIN确认; - ③ 索引不是越多越好,会让”写入”变慢。

第四步:验 —— 拿数字说话
改完必须再测一次,和第一步数字对比。8 秒 → 0.3 秒?收工。8 秒 → 7.6 秒?回退换一处。一次只改一处,改完就验——一口气改五处,变快不知哪个起作用,变慢更无从查起。
五、三道闸门:别把生产数据搞没了
这一节最重要。SQL 里最危险的两个词是 DELETE 和 UPDATE,执行完没有后悔药。
经典事故:DELETE FROM 订单表 忘了写 WHERE,整张表清空。所以任何 DELETE/UPDATE 过三道闸:
| 闸 | 动作 | 为什么 |
|---|---|---|
| 一闸:先 SELECT | 把 DELETE 换成 SELECT *,同样 WHERE 跑一遍 |
看影响哪些行,是不是你想的那些 |
| 二闸:数一下 | SELECT COUNT(*) 看条数 |
你以为删 1 条显示 8000 条——当场刹车 |
| 三闸:先备份 | 重要操作前复制/导出一份表 | 出事了还能救 |
让 AI 写 DELETE/UPDATE 时,明确要求它”先给我 SELECT 版本”。

六、AI 写 SQL 的两个坑
坑一:它会编造不存在的字段。 解法:永远先喂三件套,宁可多贴 20 行建表语句,也别让它猜。
坑二:数据库”方言”不一样。 MySQL、PostgreSQL、SQLite、SQL Server 语法有细微差别,AI 默认按最常见写,跑到你这儿可能报错。解法:提问第一句就说清“我用的是 MySQL 8.0”,一句话省半小时。
七、提示词模板盒子
模板 1:让 AI 写 SQL(万能版)
我用的数据库是【MySQL 8.0 / PostgreSQL 16 / SQLite】。
【表结构】建表语句原样粘贴(几张表贴几张)
【样例数据】每张表贴 3 行真实数据
【字段含义补充】status:1待付款 2已付款 3已取消;total_fee:单位是分不是元
【我要查什么】
- 表:从哪几张表取
- 要:要哪些列
- 筛:筛选条件
- 排:怎么排序 / 要不要分组 / 要多少条
要求:
1. 只用我给的表和字段,不编造字段名
2. 给完整可直接执行的 SQL
3. SQL 下方用一句人话解释它干了什么
4. 需求有歧义先问我,别自己假设
模板 2:慢查询诊断(贴执行计划)
下面这条 SQL 很慢,请诊断。
【数据库】MySQL 8.0
【耗时】实际 8.2 秒
【数据量】订单表约 65 万行,用户表约 3 万行
【SQL 原文】(粘贴)
【表结构】(粘贴 CREATE TABLE,含已有索引)
【执行计划】(粘贴 EXPLAIN 输出,原样复制)
请按格式回答:
1. 慢在哪一步(指出执行计划里的具体问题,用人话)
2. 优化方案按"见效大小"排序,最多 3 条
3. 每条写清:改什么、预计快多少、副作用
4. 建议加索引就给完整建索引语句,并说明会不会拖慢写入
给具体动作,别说"可以考虑优化一下"。
模板 3:危险操作三道闸
我要删除/更新这批数据:(描述意图)
表结构如下:(粘贴)
请按顺序给我三段 SQL:
1. 【试跑版】先用 SELECT * 查出会被影响的行,条件与正式操作完全一致
2. 【计数版】用 COUNT(*) 统计影响多少行
3. 【正式版】真正的 DELETE / UPDATE
要求:
- 正式版必须带 WHERE,绝不允许全表操作
- 正式版前加注释:"执行前确认第2步条数是否符合预期"
- 有不可逆风险明确提醒我先备份
模板 4:读不懂的 SQL 求翻译
下面这条 SQL 是同事写的,我看不懂,请翻译成人话。(粘贴)
请按格式回答:
1. 一句话总结:这条 SQL 在查什么
2. 分步拆解:从最里层开始一层层说
3. 结果长什么样:返回哪些列、大概什么数据
4. 潜在风险:会不会很慢、会不会查出超预期数据
用大白话,术语在括号里解释。
八、一页纸总结
- SQL 不难,就是”对着 Excel 表说话”:SELECT 选列、WHERE 筛选、ORDER BY 排序、LIMIT 取前几条。
- 让 AI 写 SQL 前先喂三件套:表结构 + 3 行样例 + 字段含义。不喂它就编字段。
- 描述需求四字:表、要、筛、排。 说清这四条基本一次对。
- 治理慢查询四步:量、看、改、验。 先拿数字,再看
EXPLAIN,一次只改一处,改完再量。 - 提速四板斧:索、少、批、拆。 优先加索引,性价比最高。
- DELETE/UPDATE 过三道闸:先 SELECT 试跑 → COUNT 数条数 → 备份。没有后悔药。
- 第一句话告诉 AI 你用什么数据库,省半小时。
下篇预告
这一篇讲了怎么让数据查得又对又快。下一篇讲更要命的:怎么让你的东西别被别人轻易搞坏——注入、XSS、越权,根源一句话:你把用户输入当成了自己人。下一篇《第88篇:用AI做安全排查》给你上线前五分钟自查清单。我们下篇见。