04-性能调优专题-MySQL性能调优-MySQL的执行原理

本文详细介绍了MySQL的执行过程,包括用户登录权限、查询缓存、词法分析、语法检查、优化器和执行器的作用。优化器关注查询效率,如JOIN操作的优化,而执行器负责调用数据库引擎获取数据。缓存的使用需在读多写少的场景下,可以通过query_cache_type参数配置。了解这些原理有助于提升数据库性能。
摘要由CSDN通过智能技术生成

mysql的执行原理:

1.用户登录,

相应的会识别到用户不同的数据库操作权限,

2.查询数据的时候,

会去缓存区查找是否存在数据,(缓存区存储的数据格式是:key value的形式存储数据的)

3.缓存区没有数据的时候,就到词法分析器

分析你的词法语法,增删改查,insert,delete,update,select,是否正确

(1)首先会分析你的词法对不:

比如 select * from user :就会提示在mysql的词法里面找不到这个词,提示错误

(2)再会分析你的语法对不

4.优化器的执行情况:

比如你的关联查询,left join ,inner join ,或者触发器

执行器算法:

考虑先查a表还是先查b表,查a是否有索引,查b是否有索引,

检索先查a表结果作为条件,再查b高效。还是先查b表结果,作为条件再查a表高效

5.执行器:

执行器会调用MySQL的数据库引擎,调用引擎接口获取查询结果

调用存储引擎,innodb,去查磁盘上的数据库文件,然后去文件里面一条一条的查找数据

找到结果集之后,会返回给执行器,执行器会校验是否开启缓存,如果开启缓存的话,会查对应的查询语句是否已经存在缓存,如果没有的话就,将该查询语句,以及结果存入到缓存中去,key(该查询语句) value的形式查询数据。第二次同样的select语句,进来的时候,查到该查询语在缓存中已经存在key,那就直接去缓存中,查数据,不再去磁盘中查询数据。(去磁盘读取数据是非常耗性能的)

缓存的使用场景:读多写少,几乎不写的场景才使用缓存。

查询缓存是否开启

my.cnf中的query_cache_type参数:

0:关闭缓存

1:无条件缓存,查询什么数据都先存入缓存

2:有条件缓存,按需使用

比如:需要缓存test表的数据,就将query_cache_type设置为2,

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值