在文章《MySQL的分表与分区》中,我们先容理解决MySQL数据库性能低下的一种路子 —— MySQL分区分表。本文,我们接着先容办理MySQL数据库性能低下的另一种路子 —— MySQL读写分离。
什么是MySQL读写分离MySQL读写分离顾名思义便是将MySQL的读操作和写操作分离开来。MySQL读操作紧张是查询操作,MySQL写操作紧张是添加操作、更新操作和删除操作。
听说,常日一个项目中,大约80%的操作是读操作,20%的操作是写操作。因此,利用读写分离,在一定程度上可以办理MySQL数据库性能低下。

实现读写分离有很多方法,既可以自己编写程序代码实现,也可以利用一些第三方开拓的中间件实现,如mysql-proxy。其余,现在很多框架(如,PHP框架Thinkphp)也实现了读写分离,你只须要配置干系参数,你的项目就可以实现读写分离。如下图所示。
当然,图中配置生效的条件是你已经支配了多个MySQL做事器。
数据同步前面说到,读写分离是将MySQL读操作和写操作分开到不同做事器,那不同的做事器之间怎么担保数据同等呢?要担保所有数据库做事器的数据同等,那就得利用MySQL数据库的主从复制和主主复制了。
1、主从复制
主从复制即是写做事器(主理事器)和读做事器(从做事器)之间的数据同步。启动MySQL的主从复制,可以按如下操作:
比如,有这样两台主从做事器,主理事器的IP为192.168.0.1,从做事器的IP为192.168.0.2。
1)我们先在IP为192.168.0.1的做事器上创建一个MySQL用户(如用户:mysql1,密码:mysql1)供IP为192.168.0.2的从做事器登录主理事器。如下:
2)查看IP为192.168.0.1的主理事器二进制文件名与位置。如下:
3)奉告IP为192.168.0.2的从做事器二进制文件名与位置。如下:
4)在IP为192.168.0.1的从做事器开启主从复制。如下:
5)查看主从配置情形。如下:
至此,MySQL数据库主从复制配置完成。
2、主主复制
在实际的事情中,读写分离可能并不是只有一台主理事器,常日的情形是主理事器也有多台。在这个情形下,不仅存在主从复制,而且还存在主主复制。
所谓主主复制便是主理事器和主理事器之间的数据同步。前面我们已经先容了主从复制的配置,实在主主复制的配置跟主从复制一样,只是观点上的转换而已。主主复制便是将个中的一台做事器当做主理事器,另一台做事器当做从做事器,然后进行主从复制配置。
比如,有其余一台IP为192.168.0.3的主理事器,现在要与IP为192.168.0.1的主理事器进行主主复制,那么在之前的配置操作根本之上,我们只要在IP为192.168.0.3的主理事器上,创建一个MySQL用户(如用户名:mysql1,密码:mysql1)供IP为192.168.0.1的主理事器登录,然后开启彼此的主从复制即可。操作步骤可参考上面的主从复制。
3、关闭主从复制
要想关闭主从复制,只须要在主理事器上实行如下命令即可: