今天刚好了解了下mysql执行一条命令的时候的一个过程,这里做下简单的记录。
一条sql的执行过程
select 语句:
- 建立连接,其中需要清楚的是,客户端与服务器的连接是一个半双工的连接状态,即同一时刻,要么是客户端向服务端发信息,要么是服务端向客户端发数据;
- 查询缓存(大小写敏感的哈希查找的方式),返回结果前会校验下用户的权限
- 进行语法解析与验证权限;
- 查询优化器,mysql 基于查询成本选择查询成本最低的;
- 生成执行计划,mysql通过生成查询的指令树
- 执行sql。
备注: 这里就不写update语句了,update语句在执行的时候,相比select会多一些操作,它有可能会去获取下相应的表锁或者是行锁等。
网友评论