mysql查询阶段性变慢_MySQL 查询变慢原因分析

MySQL有两个日志文件:redolog\binlog

基于MYSQL有这两个日志,那么什么时候可能查询慢呢?

1.REDOLOG写满了,在和BINLOG同步的时候

这时系统所有的更新都会被堵住,系统不再接受更新操作

2.系统内存不足,需要REDO LOG分内存给别的内存使用(那么这个淘汰的过程就是REDO LOG 写入BINLOG的过程)

INNODB用缓冲池来管理内存(分为以下三种状态):

1.未使用 2.使用了但是是干净的 3.使用了但是是脏页

3.系统空闲的时候会刷脏页(写盘的过程)

4.关闭数据库的时候也会刷脏页

MYSQL的策略是尽量使用内存的,那么根据这一策略,对于一个长时间运行的mysql而言的话,未被使用的内存是很少的,那么存在的也就是以上三种状态的状态2以及状态3(那么要是是状态3的话,就要把脏页的数据刷到硬盘中才能继续使用)--要是是脏页的话,LRU淘汰策略来淘汰脏页????

如果脏页的数据没有同步到硬盘,这时我们就要先同步到硬盘,数据库就会在这时变的很慢,这时我们就会有以下策略来优化它:

1.innodb_io_capacity这个参数来设置磁盘的读写能力(用以下代码来查看)

fio -filename=$filename -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runtime=10 -group_reporting -name=mytest

2. innodb_max_dirty_pages_pct 是脏页比例上限,默认值是 75%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值