【MYSQL数据库优化】

MYSQL数据库组成

1.连接器:链接客户端,校验登录信息,维持和管理链接。
注:一个用户成功建立连接后,即使你用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。修改完成后,只有再新建的连接才会使用新的权限设置。用户的权限表在系统表空间的mysql的user表中。
2.缓存器(查询缓存):MYSQL8.0及之后版本被移除了。查询MYSQL数据库的查询缓存。缓存命中的话也会检查是否有执行权限
3.分析器:分析SQL语句,检查语法是否正确。
4.优化器:根据MYSQL自己的逻辑,进行SQL语句的优化。eg:通过计算执行成本,选择执行方式。
5.执行器:1.检查是否有执行权限,2.执行SQL语句,并返回结果。
6.存储引擎:存储MYSQL数据的存储引擎。目前主要有INNODB、MYISAM、MOMERRY等。

连接器的优化

客户端如果长时间不发送command到Server端,连接器就会自动将它断开。
这个时间是由参数 wait_timeout控制的,默认值是8小时。
优化点:
1.保证访问MYSQL服务器的网络质量。
2.根据业务对链接进行线程池管理。
3.根据业务设置合理的wait_time参数。

缓存器的优化

MySQL拿到一个查询请求(普通的SELECT语句)后,会先到缓存器(查询缓存),查看是否有该查询对应的缓存数据。
如果存在,则把缓存在内存中的数据直接返回客户端。(key是查询的语句,value是查询的结果。)
如果不存在,则按照查询流程从存储引擎中获取数据。
优化点:
1.查询缓存命中率不高的话,建议关闭该缓存功能。
因为,除了缓存命中率不高意外,内存碎片管理的时间开销以及空间开销都是必要的。因此MYSQL8.0后移除了缓存器(查询缓存)。

分析器的介绍

1、词法分析
2、语法分析
3、语义分析
4、构造执行树
5、生成执行计划

优化器的介绍

优化器会通过计算执行成本而选择相应的执行方案。
优化器阶段完成后,这个语句的执行方案就确定下来了,然后进入执行器阶段。
优化点:
1.有时候可以通过强制使用索引,来打破优化器的负优化。
eg: force index(索引名)
select * from table force index(索引名 ) where 索引字段 = 2022;

SQL优化详见文章《MYSQL的SQL语句优化》

执行器的介绍

1、开始执行的时候,要先判断一下链接用户对操作是否有执行权限
2、如果有权限,则根据执行计划继续执行。

存储引擎的介绍

目前主要使用的存储引擎:INNODB、MYISAM、MOMERRY等。

事务的优化

MYSQL默认的事务级别是RR,实际运维中,通常是设置为RC。
待续

日志的优化

redo log
undo log
bin log
普通查询日志
slow query log
error log
reply log(中继日志)
待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值