首页/数据/SQL 速查/直方图统计(MySQL 8.0)
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

直方图统计(MySQL 8.0)

为无索引列或分布不均的列生成直方图:优化器据此估算过滤比例,改善访问路径选择。

SQL 速查数据更新于 2026-10-12

示例

示例
ANALYZE TABLE orders UPDATE HISTOGRAM ON status, user_id WITH 64 BUCKETS;

-- 查看已生成的直方图
SELECT table_name, column_name, histogram
FROM information_schema.column_statistics
WHERE table_name = 'orders';

-- 删除直方图
ANALYZE TABLE orders DROP HISTOGRAM ON status;
桶数上限 1024;64 与 256 是常用档位,按列区分度选择
适用无索引但常出现在 WHERE 中的列、分布倾斜的列
维护数据变化后需重新生成(不会自动更新)

易错点

  • 生成后长期不更新:数据分布变化后估算失真,直方图反而误导优化器
  • 把直方图当索引替代:它只影响估算,不加速数据定位

数据来源与参考

  • MySQL 8.0 Reference Manual · Optimizer Statistics
  • MySQL 8.0 Reference Manual · ANALYZE TABLE Statement
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌