slave 延时的主要原因是因是:master 是多线程的,而slave是单线程的。
除了这个之外,还有其他的原因:
1.低效的连接查询
2.磁盘读取的IO限制
3.锁的竞争
4.InnoDB的线程同步
预防措施如下:
知道了slave 延迟的主要原因 ,找到相应的解决办法应该是很容易的
主要总结了一下的办法:
1.组织数据。通过标准化数据和使用数据分片来分布化数据
2.分而治之,在不同的slave 上复制不同的数据库
3.识别并且重构长连接查询
4.将不同的查询重定向到不同的slave上面去 达到负载均衡
5.尽量减少锁的竞争
6.用最好的硬件 尽量和master的配置相当