跳到主要内容

optimization

查询优化策略

从写法到索引、从统计信息到执行参数,系统化优化查询性能。

要点

  • 写法:避免函数包裹索引列、隐式类型转换、SELECT *
  • 索引:最左前缀、覆盖索引、合适的列顺序;
  • 数据访问:批量/分页策略、延迟关联;
  • 统计信息与参数:收集与直方图、执行参数与并行度(依引擎)。

示例:避免函数包裹索引列

-- 慢:对列函数变换导致无法走索引
SELECT * FROM users WHERE DATE(created_at) = CURRENT_DATE;

-- 优化:改为范围查询
SELECT * FROM users
WHERE created_at >= CURRENT_DATE
AND created_at < CURRENT_DATE + INTERVAL '1 day';

工具链

  • MySQL:EXPLAIN/ANALYZEOPTIMIZER_TRACE、慢日志;
  • Postgres:EXPLAIN (ANALYZE, BUFFERS)pg_stat_statements
  • 通用:采样 SQL、A/B 对比、基准与回放。