很多人在做 SQL 优化的时候都会去看 Cost。很多人经常问:为什么 Cost 很小,但是 SQL 就是跑很久不出结果呢?在这里告诉大家,做 SQL 优化的时候根本不需要去看 Cost,因为 Cost 是根据统计信息、根据一些数学公式计算出来的。正是因为 Cost 是基于统计信息、基于数学公式计算出来的,那么一旦统计信息有误差,数学公式有缺陷,Cost 就算错了。而一旦 Cost 计算错误,执行计划也就错了。当 SQL 需要优化的时候,Cost 往往是错误的,既然是错误的 Cost,我们干什么还要去看 Cost 呢?

    本章带领大家手动计算全表扫描以及索引扫描成本,同时由此引出 SQL 优化核心思想。