MySQL也有垃圾回收吗

MySQL在执行时可能会出现卡顿,这可能与刷脏页有关,即内存中的数据页写入磁盘并清除redolog。这种行为在内存不足或redolog满时发生,可能导致性能下降。避免频繁刷脏页可以通过调整脏页比例上限和优化刷脏策略。此外,查询慢可能是由于系统资源限制、锁定机制或索引使用不当导致的。
摘要由CSDN通过智能技术生成

我们在使用mysql的时,有时候会突然卡一下,仿佛是我们在用GO语言时的垃圾回收。实际上,mysql是用C写的,没有垃圾回收机制。那为什么无故卡一下?

你会发现此时磁盘IO很高,说明mysql正在”刷脏页“。

 刷脏页就是将内存中的数据页保存至磁盘,同时,删除此页相关的redo log,推进check point。

为什么要刷脏?

1,内存中脏页太多,内存不足。

2,redo log 文件写满,想要推进check point

3,系统空闲,提前刷脏,预防上诉情况

4,mysql关闭前,保存数据

前两种都会产生性能问题,导致mysql卡住。

如何避免被迫刷脏?

1. 配置合理的脏页比例上限

2 控制“顺便刷脏”策略:传统磁盘连续读写性能好,尽量刷连续的页

为啥只查一行的语句,也执行这么慢? 

 第一MySQL数据库本身被堵住了,比如:系统或网络资源不够

第二SQL语句被堵住了,比如:表锁,行锁等,导致存储引擎不执行对应的SQL语句

第三确实是索引使用不当,没有走索引

第四是表中数据的特点导致的,走了索引,但回表次数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值