加载中...

优化器统计信息(Optimizer Statistics)是数据库为查询优化收集和维护的数据特征描述,包括表级(行数、数据页数)、列级(非重复值数 NDV、空值比例、最大最小值、直方图)与索引统计等,供基于代价的优化器估算选择率与代价。
直方图是刻画列值分布的核心结构,常见两类:等宽直方图与等高(等频)直方图,后者对倾斜数据更稳健;部分数据库还支持记录高频值的 Top-N/最频值(如 PostgreSQL 的 MCV 列表)。有了直方图,优化器才能对非均匀分布的谓词给出合理估计。
统计信息通过采样分析命令收集,如 PostgreSQL 的 ANALYZE、MySQL 的 ANALYZE TABLE、Oracle 的 DBMS_STATS。多数数据库支持在数据变更达到阈值后自动重新收集。
统计过期是执行计划劣化的头号原因:大批量导入或删除后未及时分析,优化器仍按旧行数决策;采样率过低会低估 NDV;列间相关性需要扩展统计(如 PostgreSQL 的 CREATE STATISTICS)才能刻画。运维中"计划突然变差先查统计信息"是通行经验。

登录 后参与讨论
暂无讨论,来发表第一条评论吧