SuperAPI AI 工具集

sql-query-optimization

数据与分析

查看项目

更新于 10-15 23:56

技能介绍

用途:该技能用于 PostgreSQL/MySQL 的 SQL 查询优化,针对慢查询、N+1 问题、缺失索引、顺序扫描等性能问题,提供索引设计、EXPLAIN 分析与查询重写的实践指导。资料标注状态为 Production Ready,涉及 PostgreSQL 17 与 MySQL 8.4,无额外依赖。

主要能力:识别慢查询(PostgreSQL 用 pg_stat_statements,MySQL 用 performance_schema);用 EXPLAIN (ANALYZE, BUFFERS, VERBOSE) 分析执行计划;创建索引(B-Tree、复合、覆盖、部分索引);重写查询(子查询转 JOIN、消除 N+1、游标分页、批量 INSERT);配置调优(work_mem、shared_buffers、innodb_buffer_pool_size);长期监控与错误排查。资料列出 12 类常见错误及解决方案,并附模板与参考文件(如 templates/explain-query.sql、references/error-catalog.md)。

使用方式:先定位慢查询,再用 EXPLAIN 分析,随后按需创建索引或重写查询并验证效果。示例命令包括 CREATE EXTENSION IF NOT EXISTS pg_stat_statements;、EXPLAIN (ANALYZE, BUFFERS, VERBOSE) SELECT * FROM orders WHERE user_id = 123;、CREATE INDEX CONCURRENTLY idx_orders_user ON orders(user_id);、ANALYZE table_name。资料强调使用参数化查询、连接池、为无界查询加 LIMIT、批量操作后执行 ANALYZE。

适用场景:生产环境慢查询排查、JOIN 性能优化、分页与批量写入优化、索引策略选择、数据库配置调优。

限制:资料未提供具体收费、价格、平台支持范围或效果保证;shared_buffers 修改需重启 PostgreSQL,pg_reload_conf() 无法生效;部分扩展(如 pg_trgm)为可选。缺失信息暂未提供。