数据库查询优化与性能调优全解析
1. 现代数据库管理系统的索引选择
现代数据库管理系统(DBMS)在拥有最新数据库统计信息的情况下,能够智能地确定在特定环境下使用的最佳索引类型。无论选择何种索引,DBMS 都会确定执行给定查询的最佳计划。
1.1 查询优化器的选择模式
查询优化是查询处理解析阶段的核心活动。在此阶段,DBMS 必须选择使用哪些索引、如何执行连接操作、首先使用哪个表等。每个 DBMS 都有自己的算法来确定访问数据的最有效方式,查询优化器有两种操作模式:
- 基于规则的优化器 :使用预设规则和得分来确定执行查询的最佳方法。规则为每个 SQL 操作分配“固定成本”,然后将这些成本相加得出执行计划的成本。例如,全表扫描的固定成本为 10,按行 ID 访问表的固定成本为 3。
- 基于成本的优化器 :使用基于被访问对象统计信息的复杂算法来确定执行查询的最佳方法。在这种情况下,优化器会累加处理成本、I/O 成本和资源成本(RAM 和临时空间),以确定给定执行计划的总成本。
1.2 不同索引类型的应用场景
不同类型的索引适用于不同的数据稀疏性情况:
- B - 树索引 :用于数据稀疏性高的列,即相对于总行数有许多不同值的列。叶对象包含索引键和指向表中各行的指针,使用索引访问任何行所需的 I/O 访问次数相同。
- 位图索引 :用于数据稀疏性低的列,即相对于总行数只有少数不同值的列。位图索引中的每个位代表一个区域代码,在搜索时非常高效。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



