FAQ:说一说一条查询语句是如何执行的?

1 select  * from  user  where id=1;

1.客户端发送SQL语句到服务器,先要通过连接器连接到数据库,在完成TCP握手之后,验证用户名和密码。验证通过之后,首先要去查询缓存查询是否有此SQL对应的数据,如果你之前执行过该SQL语句,语句和结果会通过key-value的形式保存在内存中。key是语句,value是结果。

2.如果查询缓存中没有SQL对应的数据,就会进入解析器。

3.服务器通过解析器会对SQL语句进行词法、语法分析。比如关键字有没有拼写错误,语法有没有错误。

4.解析完之后,服务器就会通过优化器会对SQL语句进行默认优化,然后生成一个执行计划。

5.服务器将执行计划交给执行器,执行器首先判断该表是否有执行查询的权限,没有则返回权限错误,如果有,执行器会根据执行计划,调用存储引擎执行SQL查询逻辑。

6.最后将查询结果存储到查询缓存中,然后再返回给客户端。

1)如何查看MySQL中的最大连接数?

1 show variables like '%max_connections%';

2)如何设置MySQL的最大连接数?

1 set global max_connections=200;

3)如何查询MySQL是否开启了查询缓存?(MySQL8.0默认关闭了查询缓存)

1 show variables like '%query_cache%';

 

posted on 2022-12-17 17:51  披着狼皮的阳  阅读(49)  评论(0)    收藏  举报