随笔 - 13  文章 - 0  评论 - 0  阅读 - 1121

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   披着狼皮的阳  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示