MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取
阿里云CloudDBA具有SQL优化建议功能,包括SQL重写建议和索引建议。SQL索引建议是帮助数据库优化器创造最佳执行路径,需要遵循数据库优化器的一系列规则来实现。CloudDBA需要首先计算表统计信息,是因为:
- 数据库优化器通常是基于代价寻找执行路径;
- SQL优化建议所针对的数据库不限于MySQL数据库,也不局限于某一个特定版本;
1. 基本原则
数据库统计信息在SQL优化起到重要作用。用来估算查询条件选择度的常见统计信息包括表统计信息和字段统计信息。DBA计算查询条件选择度或代价时经常通过手工执行SQL语句获取,并进行返回行数或代价的粗略估算。
- 表统计信息:表中总记录数;
- 字段统计信息:包括最大值,最小值;以及不同值个数;
而要相对更准确的获取条件选择度的估算,往往需要统计直方图(Histogram),因为多数情况,每个值的出现频度是不一