MYSQL执行成本由两部分组成:
-
IO成本:与读取的页数有关,用于从磁盘读取表的数据到内存,成本计算为 页数*1。(读取时会读取数据所在的页,即表现了程序的 空间局部性)
-
CPU成本:与表行数有关,用于条件的比较或排序,成本计算为 行数*0.2
MYSQL执行成本=读取页数*1+数据行数*0.2
TIPS:
-
MYSQL可能不会选取时间最短的计划进行,而是选择执行成本最小的计划。也就是说MYSQL认为成本小 ≠时间短。
-
EXPLAIN可以查看某操作用的是哪个索引。
-
optimizer trac e可以查看优化器生成计划的整个过程,它列出了选择每个索引的执行计划成本和最后的选择结果。