理论上是 cost值越大,SQL的执行计划就不好.
但是还有一个前提,就是你的表的分析数据要正确。
cost 值的计算,是根据数据库表的统计信息来计算的。
例如 你有一个 一百万行的表 ABC。 在 A 列上面有一个索引。
你
SELECT SUM(B) FROM ABC WHERE A = 100
在数据库没有表/索引的 相关统计信息的情况下, 这个 cost 确实是估计出来的一个大概的值。偏差可能 与这个表中的 A=100 的数量有多少相关。
比如 100万条记录里面, A=100 的数据只有一条 / A=100 的数据只有 十万条。 执行的时间可是差很多的。