MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重 。
为什么主从延时这么大?
文章插图
答:MySQL使用单线程重放RelayLog 。
应该怎么优化,缩短重放时间?
答:多线程并行重放RelayLog可以缩短时间 。
多线程并行重放RelayLog有什么问题?
文章插图
答:需要考虑如何分割RelayLog,才能够让多个数据库实例,多个线程并行重放RelayLog,不会出现不一致 。
为什么会出现不一致?
答:如果RelayLog随机的分配给不同的重放线程,假设RelayLog中有这样三条串行的修改记录:
update account set money=100 where uid=58;
update account set money=150 where uid=58;
update account set money=200 where uid=58;
如果单线程串行重放:能保证所有从库与主库的执行序列一致 。
推荐阅读
- MySQL innodb引擎深入讲解
- 阿里云RDS迁移,极简安装 MySQL TokuDB 引擎
- 我C,MySQL双主架构,原来能这么玩
- 6个MySQL GUI工具,数据库管理必备
- 还不知道MySQL怎么给字符串加索引?
- Python通过MySQLdb访问操作MySQL数据库
- linux安装mysql启动不起来总结
- 面试题-Mysql数据库优化之垂直分表
- MySQL-锁机制详述
- 浅聊mysql外连接查询