欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL读写分离原理

程序员文章站 2022-03-08 17:12:20
...
 简单来说,读写分离(图10.3) 就是只在主服务器上写,只在从服务器上读。基本的原理是让

主数据库处理事务性查询,而从数据库处理select 查询。数据库复制被用来把事务性查询导致的变更同步到群集中的从数据库。
MySQL读写分离原理
目前较为常见的MySQL读写分离分为两种。
1)基于程序代码内部实现
在代码中根据select. insert 进行路由分类,这类方法也是目前生产环境应用最广泛的。优点是性能较好,因为在程序代码中实现,不需要增加额外的设备作为硬件开支:缺点是需要开发人员来实现,运维人员无从下手。
2)基于中间代理层实现
代理一般位于客户端和服务器之间,代理服务器接到客户端的请求后通过判断后转发到后端数据库,有两个代表性程序。
(1) MySQL-Proxy。MySQL- -Proxy为MySQL开源项目,通过其自带的lua脚本进行SQL判断,虽然是MySQL官方产品,但是MySQL官方并不建议将MySQL- -Proxy 用到生产环境。
(2) Amoeba (变形虫)。由陈思儒开发,其曾就职于阿里巴巴。该程序用Java语言进行开发,
阿里巴巴将其用于生产环境。它不支持事务和存储过程。
经过上述简单的比较,通过程序代码实现MySQL读写分离自然是一个不错的选择, 但是并不是
所有的应用都适合在程序代码中实现读写分离,例如一些大型复杂的Java应用,如果在程序代码中实现读写分离对代码改动就较大。所以,像这种大型复杂的应用一般会考虑使用代理层来实现。