栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

sql执行过程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sql执行过程

概述
当向Mysql服务器发送查询请求时,MySQl执行过程如下:

1、客户端发送一个连接请求给服务器。
2、服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段。(如果是更新sql,会把之前的查询缓存置为失效状态)
3、服务器端进行SQL解析、预处理(是否语法错误,关键字等)。
4、查询优化器对查询进行优化并生成对应的执行计划(索引选择等)。
5、MySQL根据优化器生成的执行计划,再调用存储引擎的API来执行查询。
(查询缓存生成redo日志undo日志,
执行引擎写binlog,提交事务)
6、将结果返回给客户端。

查询缓存需要手动开启:
在配置文件中加上(query_cache_type=1或query_cache_type=on)
例如:vi /etc/mysql/mysql.conf.d/mysqld.cnf,然后重启mysql(service mysql restart)

查询缓存是否开启(show variables like ‘%query%’; )

测试是否生效:
第一次查询时间:2.83s

第二次查询:0s

参数说明:
query_cache_type:是否打开查询缓存。可以设置为OFF、ON和DEMAND。DEMAND表示只有在查询语句中明确写明SQL_CACHE的语句才会放入查询缓存。
query_cache_size:查询缓存使用的总内存空间。
query_cache_min_res_unit:在查询缓存中分配内存块时的最小单元。较小的该值可以减少碎片导致的内存空间浪费,但是会导致更频繁的内存块操作。
query_cache_limit:MySQL能够查询的最大查询结果。如果查询结果大于这个值,则不会被缓存。因为查询缓存在数据生成的时候就开始尝试缓存数据,所以当结果全部返回后,MySQL才知道查询结果是否超出限制。超出之后,才会将结果从查询缓存中删除。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号