一条SQL查询语句是如何执行的?(12)
你会在数据库的慢查询日志中看到一个 rows_examined 的字段 , 表示这个语句执行过程中扫描了多少行 。 这个值就是在执行器每次调用引擎获取数据行的时候累加的 。
在有些场景下 , 执行器调用一次 , 在引擎内部则扫描了多行 , 因此引擎扫描行数跟 rows_examined 并不是完全相同的 。 我们后面会专门有一篇文章来讲存储引擎的内部机制 , 里面会有详细的说明 。
小结
今天我给你介绍了 MySQL 的逻辑架构 , 希望你对一个 SQL 语句完整执行流程的各个阶段有了一个初步的印象 。 由于篇幅的限制 , 我只是用一个查询的例子将各个环节过了一遍 。 如果你还对每个环节的展开细节存有疑问 , 也不用担心 , 后续在实战章节中我还会再提到它们 。
我给你留一个问题吧 , 如果表 T 中没有字段 k , 而你执行了这个语句 select * from T where k=1 那肯定是会报“不存在这个列”的错误: “Unknown column ‘k’ in ‘where clause’” 。 你觉得这个错误是在我们上面提到的哪个阶段报出来的呢?
推荐阅读
- Uzi|LOL近年来两大转会假新闻!一条比一条离谱好笑
- 手机游戏|DNF关服了会有什么补偿?玩家讨论出四种可能,最后一条最靠谱
- 一条小团团|瘦身成功的小团团,只打算邀女粉庆生,结果多了8个男粉
- 一条小团团|网红「一条小团团」不惧恶评!大方露脸,发布视频!自称:从未被认出过
- 梦幻西游|梦幻西游:翻出一条10级双蓝字腰带,引来土豪哄抢,价值飙升10亿
- 超激斗梦境|《超激斗梦境》人物每一条属性介绍
- 一条小团团|鱼死网破?小团团发文暗示被背锅,公会的问题和她没关系
- 一条小团团|虎牙法神带小团团开黑,振刀成功后,小团团激动:我负责捡武器
- 云顶之弈|云顶之弈:开局三龙族,是天赐还是陷阱?不要一条道走到黑!
- 打野|新版本T0刺客突然诞生,出名刀可以再获得一条命,天克百里玄策!