mysql中疑问

日志问题
server产生的binlog,用来进行数据复制
innodb产生的undo log,redo log,用来时间事务的acid
日志体系不是用来看的,是运行必要的

binlog归档日志
在这里插入图片描述
undo log
在这里插入图片描述
redo log
在这里插入图片描述
redo log存储在4个1GB的文件中,并且循环写入
在这里插入图片描述
3一条语句是如何更新的

在这里插入图片描述
重点流程是内存中想写undo log,再改内存数据,再改redo log
,最后写binlog,但上面的流程一旦遇到断电,就崴泥了
redolog刷盘
在这里插入图片描述
binlog刷盘
在这里插入图片描述
持久化
在这里插入图片描述

为啥redolog一定在binlog之前
在这里插入图片描述
4平衡功能与性能—锁
在这里插入图片描述

全局锁
在这里插入图片描述
表锁
在这里插入图片描述
元数据锁
在这里插入图片描述
行锁
在这里插入图片描述
在这里插入图片描述

5 事务
在这里插入图片描述
6隔离级别
读未提交
在这里插入图片描述
读提交

在这里插入图片描述
可重复读
mysql默认级别
在这里插入图片描述
串行化
在这里插入图片描述
7 mvcc
在这里插入图片描述
快照读
在这里插入图片描述
当前读
在这里插入图片描述
隔离问题
幻读是啥意思呢,就是虽然我锁住了当前数据,因为是行锁,但不妨碍我往里插数据,这边插入数据后,那边前后一查,发现数据不一样了,以前是5条,现在是6条,这就是幻读
在这里插入图片描述
在这里插入图片描述
如何解决幻读问题
在这里插入图片描述
在这里插入图片描述
9 间隙锁
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

规则复杂,挺不优雅

10 垃圾回收
在这里插入图片描述
在这里插入图片描述
什么是刷脏页
在这里插入图片描述
为啥要刷脏页
内存的脏页太多,内存不足
redolog文件写满了,需要推进check point
系统空闲,提前刷脏,预防上述情况
mysql关闭前,保存数据

11如何避免被迫刷脏
在这里插入图片描述
服务器IO配置
在这里插入图片描述
配置合理的脏页比例上限
在这里插入图片描述顺便刷脏策略

在这里插入图片描述
13如何解决死锁问题
长事务的危害
主要危害:锁无法释放,尤其行级锁,导致其他事物等待,也容易产生死锁。
MDL锁hold住大量事务,造成mysql崩溃
行级锁
在这里插入图片描述
解决办法
在这里插入图片描述
容易产生死锁

在这里插入图片描述
解决办法
在这里插入图片描述
13 元数据锁MDL
在这里插入图片描述
在这里插入图片描述
解决办法
在这里插入图片描述
如何查看影响性能的锁
在这里插入图片描述
在这里插入图片描述
业务上的建议
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值