首先是连接器的工作,嗯,与客户端进行TCP三次握手建立连接,校验客户端的用户名和密码,如果用户名和密码都对了,那么就会检查该用户的权限,之后执行的所有SQL语句都是基于该权限
接着客户端就可以向数据库发送查询语句,首先数据库会先查询缓存,这是在server层发生的,但是MySQL 8.0以后已经删除了这个步骤
第三步是解析sql,这一步是解析器做的,他会检查我们的SQL语句有没有错误,并且构建出语法树
第四步是执行sql,执行sql分为三个步骤,一是预处理阶段,预处理阶段,由预处理器来完成,他负责,查询字段存不存在,以及将select *中的*展开为表中的每一列,二是优化阶段,由优化器来完成,它负责根据查询成本确定一个最终的查询方案,三是执行阶段,由执行器完成,根据计划执行sql语句从存储引擎读取记录并返回给客户端。
家人们,,心乱乱的,这就是二十岁吗