长 SQL 怎么格式化才更好读?
说明 SELECT、JOIN、WHERE、GROUP BY 等长 SQL 的排版方式,帮助排查接口和慢查询。
打开 SQL 格式化工具把结构拆开,比压成一行更容易发现问题
线上日志里的 SQL 经常是一整行,包含 SELECT 字段、多个 JOIN、WHERE 条件和排序分页。直接读很容易漏看条件或关联关系。
格式化后可以把 SELECT 字段逐行展开,把 JOIN、WHERE、GROUP BY、ORDER BY 分段显示,排查起来清楚很多。
- SELECT 字段较多时建议一行一个字段。
- JOIN 条件单独换行,方便确认关联键。
- WHERE 条件按 AND/OR 分组,避免逻辑优先级看错。
慢查询排查关注哪些位置
格式化只是第一步。慢查询还要看 WHERE 条件是否命中索引、JOIN 顺序是否合理、ORDER BY 和 GROUP BY 是否导致临时表或文件排序。
如果 SQL 来自 ORM,格式化后也更容易定位是哪段业务条件拼接导致查询变复杂。
压缩 SQL 的用途
除了美化,压缩 SQL 也有使用场景。例如复制到配置项、接口参数或日志对比时,单行 SQL 更方便保存。但开发排查阶段,建议保留格式化版本。
常见问题
SQL 格式化会修改执行结果吗?
正常格式化只调整空格、换行和大小写,不改变 SQL 语义。
MySQL 和 PostgreSQL 都能用吗?
常见 SELECT、INSERT、UPDATE、DELETE 语句都可以格式化,但方言特性要以数据库实际执行为准。
关键字大写有必要吗?
不是必须,但 SELECT、FROM、WHERE 等关键字大写后,长 SQL 的结构更容易扫读。