SQL语句的执行过程
2021-11-26 16:33:02 4 举报
记录mySQL 一条SQL语句的简单执行过程
作者其他创作
大纲/内容
客户端
连接器
独立的分析模块
词法分析
1. 索引的选择2. 表关联的执行顺序等
1. 主要做语法校验、字段、表等检查2. 词法分析:识别每个单词的代表什么3. 语法分析:判断是否符合mysql语法要求
分析机
存储引擎
开始
1. 权限校验2. 通过分析器生成的语法树调用引擎接口执行
AstTree
管理连接,权限验证1. mysql -h** -P** -u** -p**2. 一旦建立连接,会查询当前用户的权限,如果管理员此时修改了用户权限,则此连接的权限也不受影响 3. 可通过 show processlist 查询当前的连接4. 如果客户端长时间没有操作,则会断开连接(默认为8小时,由参数wait_timeout控制),此时如果再发起请求则会收到 Lost connection to MySQL server during query 连接中断的错误5. 使用长连接时可能会出现内存过大的问题,原因是因为长链接的内存是存在连接对象中的,mysql5.7版本以后,增加了mysql_reset_connection 来重新初始化连接资源。
分析器
优化器
结束
语法分析
执行器
查询缓存
0 条评论
下一页