1. 全局查询的优化器,CBO、统计信息?
分布式数据库的全局查询优化器如何工作?CBO(基于代价的优化)与统计信息的作用是什么?
- CBO 优化器原理
- 统计信息的作用
- 分布式环境下优化器的挑战
全局查询优化器负责把分布式查询转换生成高效的执行计划。CBO(Cost-Based Optimizer,基于代价的优化)通过估算各执行计划的代价(利用统计信息估算基数、行数、IO、CPU、网络传输等),选择代价最小的计划。统计信息是 CBO 的基础,包括表/列的行数、基数、分布、索引信息等,用于估算选择率与代价。分布式环境下,优化器还需考虑数据分片分布、跨节点网络传输代价、是否可下推(谓词/投影/聚合下推减少传输),并结合各分片统计信息做全局估算。CBO 的准确性依赖统计信息的及时更新(如自动收集、采样)。
CBO 的核心是"用统计信息估算代价,选最优计划"。分布式查询优化比单机更复杂,因为要权衡网络传输与下推。统计信息过时会导致 CBO 选错计划。TiDB、CockroachDB 等都有 CBO 与统计信息收集机制。理解 CBO 与统计信息,是理解分布式查询性能调优的基础。