解决MYSQL从库延迟问题的几种方法

1、最简单的,就是对于需要保持一致性的数据,都去读主库。但是对于大数据量的应用,这种方法显然不可行。

2、采用同步复制模式(synchronous replication model),MYSQL通过NDB cluster storage engine提供了一种同步复制模式,不过Mysql cluster的稳定性、sync replication的效率、使用限制等等都还是问题。

3、使用负载均衡等技术减轻从库压力,从而减少replication lag的情况(但不能完全避免)。

4、数据库分区(database partitioning),这个我不懂。

5、通过一个id或版本号(global-transaction-id or version),每次写操作时更新这个id,读的时候比较主从库中的这个id来判断主从是否同步,从而决定去读哪个库。

为了快速,使用MEMORY table来存储这个id。可以自己写代码将更新和比较id的操作封装起来,甚至可以hack MYSQL,也可以使用MYSQL Proxy等工具替你来完成这些操作,这样你不用修改你的业务代码。