MySQL 深潜 - 直方图采样优化

之前有篇文章《MySQL 深潜 - 统计信息采集》介绍过MySQL索引统计信息的采样过程,这篇文章主要关注的是索引统计信息cardinality的采集以及计算过程,优化器对该统计信息的使用需要满足索引前缀的规则,通俗地讲就是查询中的条件需要满足部分或全部匹配某个索引上的索引列,而且必须是自左向右的匹配顺序,这也就意味着只有索引列才能利用上该统计信息。 直方图介绍 对于非索引列或者无法使用索引统计信息的列,MySQL是通过直方图来采集统计信息的。 直方图使用方式 直方图是M

MySQL 深潜 - 统计信息采集

在值班的时候,经常会有慢SQL的工单需要帮客户分析,选择了错误的执行计划是导致慢SQL的一个常见原因。MySQL数据库是基于cost来做优化,cost要基于统计信息来计算得出,所以执行计划的选择很大程度上受统计信息影响。很多场景下,统计信息不准确,都是统计信息更新不及时或者采样页数太少导致的。 简介 总的来说,统计信息采集是基于已有的索引,通过特定的采样方式来选择一定的采样页,以此来估算整个索引的统计信息。 相关参数 | 参数 | 取值范围 | 含义 | | — | — |