90 再次重温写出各种SQL语句的时候,会用什么执行计划(3)
2023/2/27大约 2 分钟
总结
那么现在为止,我们要做一个小小的停顿和总结,就是现在大家已经知道写出来的SQL有哪些执行的方式了。const、ref、range,都是性能最好的方式,说明在底层直接基于某个索引树快速查找了数据了,但有的时候可能你在用了索引之后,还会在回表到聚簇索引里查完整数据,接着根据其他条件来过滤。
然后index方式其实是扫描二级索引的意思,就是说不通过索引树的根节点开始快速查找,而是直接对二级索引的叶子节点遍历和扫描,这种速度还是比较慢的,大家尽量还是别出现这种情况。
当然index方式怎么也比all方式好一些,all就是直接全表扫描了,也就是直接扫描聚簇索引的叶子节点,那是相当的慢,index虽然扫描的是二级索引的叶子节点,但是起码二级索引的叶子节点数据量比较小,相对all要快一些。
然后之前给大家说的可能一个SQL里用多个索引,意思就是可能对多个索引树进行查找,接着用intersection交集、union并集的方式来进行合并,此时可能给你在执行计划里也会看到这些字样,那你起码这里要知道是怎么回事,其实他就是告诉你,他查找了多个索引,做了一些结果集的交集或者是并集,而且这种方式也不一定是会发生的。
这些其实都是一些单表查询的执行计划可能包含的内容。