mysql
文章平均质量分 54
mysql
「已注销」
这个作者很懒,什么都没留下…
展开
-
mysql 主从延迟原因 解决方案
主数据库更新操作频繁,导致从数据库的relay log堆积很多,回放relay log的单个线程忙不过来。mysql5.7之后,基于时钟(Group Commit)的并发复制。mysql8.0之后的write set并发复制。多个线程并发回放提高效率。主库执行了慢sql或大事务,从数据库回放时也同样耗时事务中涉及到慢查询,考虑未建索引、索引失效、索引选错、等待锁。例如对一个大表进行Update、delete。DDL语句操作大表。对于DDL语句操作大表,可以考虑夜间请求少的时候进行。从数据库的配置原创 2022-03-22 17:02:14 · 793 阅读 · 0 评论 -
mysql 慢查询原因 排查 优化
慢查询原因一条sql偶尔查询很慢原因数据库更新频繁,redo log buf很快满了,只能先暂停其他操作,将redo log buf同步写到磁盘上时,这时候查询只能等待写磁盘完成了。查询涉及到的表或行被加锁了,只能等待锁被释放。一条sql一致查询很慢应该是sql书写有问题了。原因字段未创建索引索引失效。索引失效有很多原因。数据库选错索引。数据库的统计信息不准确,选错了索引,analyze 表重新统计信息。或者sql里强制使用某个索引。索引失效的情况where、group b原创 2022-03-21 16:18:41 · 2081 阅读 · 0 评论 -
mysql MVCC精讲
MVCC(Multi Version Concurrency Control)多版本并发控制InnoDB通过MVCC来实现事务的隔离性,控制事务的并发。MVCC通过版本链实现多版本,可并发读-写、写-读。ReadView的不同生成策略来实现隔离级别。事务对记录的修改会保存在版本链中,多个事务修改后,就有多个版本。在(Read Commited)读已提交、Repeatable Read可重复读隔离级别下,其他事务的Select操作可以访问记录的版本链,因此可以并发读-写、写-读。版本链在InnoDB原创 2022-03-22 22:37:15 · 588 阅读 · 0 评论