本篇章为构建mysql在执行过程中简单的业务流程,为后续的代码优化和面试构建基础。
1、首先一条sql在执行时sql会通过网络传送给mysql
2、在Mysql收到sql语句后会先在分析器中先判断一下SQL语句有没有语法错误。
3、判断完语法之后语法无误,优化器会根据你写的sql判断执行什么索引。(这里是一个比较重要的知识点)
4、执行器会调用存储引擎的接口函数。(存储引擎是真正读写数据的地方现在常用的是InnoDB存储引擎)
5、SQL到InnoDB中会根据前面优化器里计算得到的索引去查询相应的索引页,在通过索引页查询到数据页的位置。 (这里只是知道位置!)
(因为直接读写磁盘比较慢,所以InnoDB加了一层Buffer Pool内存来提速。)
(Buffer Pool中既放行数据也放索引,如果索引页不在Buffer Pool内存中,则去磁盘中加载索引页。)
6、最后将一行行的数据结果返回给客户端。