Mysql查询成本
基于成本的优化步骤
1.根据搜索条件,找出所有可能使用的索引
2.计算全表扫描成本
3.结算使用不同索引执行查询的代价
4.对比各种执行方案,找出成本最低的一个
全表扫描成本
I/O成本(1.0) + CPU成本(0.2)
IO成本:
计算聚簇索引叶子页数量 = 数据大小/16K
IO成本 = 叶子页数量 * 1 +微调值(1.1)
CPU成本 = 0.2 * 数据量 + 微调值(1.0)
使用二级索引成本
二级索引成本 + 回表成本
二级索引成本 = IO成本 + CPU成本
回表成本 = IOIO成本 + CPU成本
两表连接成本计算
驱动表的扇出
连接查询总成本 = 单次查询驱动表的成本 + 扇出数*单次访问被驱动表的成本
多表连接成本计算
1.提前结束
2.连接的深度
3.启发式规则
4.调节成本常数