mysql limit 1优化的困惑?

近期读到关于mysqllimit1优化的一些资料,对于资料中所提及的追加limit1前后数据查询的时间对比,确实说明了适当地添加limit1可以提升效率。
但在这个过程中有一点困惑,资料中提及,limit1之所以可以提升查询效率,是因为本该全表扫描时,追了limit1,查到一条时就会停止表的扫描。
本人对这种说辞不赞同!有两点原因,一是从select语句的执行顺序来看,limit的执行是在select之后的。二是查看select的执行计划显示,追加limit1前后的两次查询都扫描了几乎全表的行数。如果照上述的说法,limit1的select在执行计划中不应该只显示扫描1行吗?
但limit1添加后确实查询变快了,本人查看了具体的查询分析结果,发现差异在于mysqlprofile中的“sendingdata”一项,但还是无法理解limit1可以避免全表扫描。
希望专业人士可以帮忙解惑。参考资料
大话西游666
浏览 404回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript