SuperAPI AI 工具集

sql-patterns

数据与分析

查看项目

更新于 10-15 23:31

技能介绍

用途:该技能为 SQL 编写与审查提供策略与常见陷阱清单,适用于写 SQL、诊断慢查询、设计 schema、审查迁移等场景。假定已具备 CTE、窗口函数、连接、DML 及 Flyway/Liquibase 基础。

主要能力:先做设置检查——确认目标方言(Postgres、MySQL、MariaDB、SQLite、SQL Server),检查迁移目录 db/migration/(Flyway)或 db/changelog/(Liquibase),确认 EXPLAIN 访问与表规模。若配置了 DBHub MCP(mcp/.mcp.json),可用于查看 schema、运行 EXPLAIN ANALYZE、估算行数、校验迁移。

必要用法:显式列出列名,不用 SELECT *;子查询可能返回 NULL 时用 NOT EXISTS 或 LEFT JOIN ... IS NULL 替代 NOT IN;大列表用键集分页;所有查询参数化;为过滤与连接列建索引;迁移尽量置于事务中;声明优化前先 EXPLAIN ANALYZE。

限制与禁止:不在可空列上用 NOT IN;不在索引列上套函数;避免跨列 OR;大表加 NOT NULL 列需分批回填;大表建索引需用 CONCURRENTLY 等在线方式;不得编辑已应用的迁移;大表避免 SELECT COUNT(*) 做分页;不用 DISTINCT 掩盖错误连接;连接避免隐式类型转换;迁移文件不得含凭据、PII 或密钥。

输出格式:给出简短计划、方言限定的 SQL、大表变更的锁与回填方案,以及预期执行计划形状与依赖索引。审查时指出违规项与最小修复方案。参考文件包括 references/migrations.md 与 references/performance.md。