本文主要围绕直方图与索引的对比、何时应该添加直方图,以及直方图如何帮助优化器选择更优的执行计划这几个方面来介绍直方图。直方图用于描述数据表中列上的数据分布,可以帮助优化器更准确地估计给定的 where 子句或联接条件将过滤掉表中多少数据。与索引相比,直方图的一个优点是,在确定过滤条件返回行数时直方图成本要低,而且直方图统计信息只需在非业务高峰定期收集即可,对 DML 操作无影响。何时应该添加直方图:数据分布不均匀,或者具有太多值,以至于优化器粗略估算无法很好的估计数据的选择行。选择性差的列。用于在 where 子句或联接条件过滤表的数据。直方图主要体现在表联接时,可以帮助确定何种选择最好。