mysql读写分离实现方式是什么
在mysql中,可以利用“mysql-proxy”实现读写分离;“mysql-proxy”是一个mysql官方提供用于实现读写分离的软件,也叫中间件,可以让主数据库处理写操作,而从数据库处理查询的操作,数
<blockquote><p>在mysql中,可以利用“mysql-proxy”实现读写分离;“mysql-proxy”是一个mysql官方提供用于实现读写分离的软件,也叫中间件,可以让主数据库处理写操作,而从数据库处理查询的操作,数据库的一致性则通过主从复制来实现。</p></blockquote>
本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。
mysql读写分离的实现方式是什么
Mysql中可以实现读写分离的插件有mysql-proxy / Mycat / Amoeba ,mysql-proxy是系统自带的一个插件,此次实验主要用它来实现读写分离
mysql-proxy是实现"读写分离(Read/Write Splitting)"的一个软件(MySQL官方提供 ,也叫中间件),基本的原理是让主数据库处理写操作(insert、update、delete),而从数据库处理查询操作(select)。而数据库的一致性则通过主从复制来实现
MySQL-proxy 它能实现读写语句的区分主要依靠内部的一个lua脚本(能实现读写语句的判断)
如果只在主服务器(写服务器)上完成数据的写操作,此时从服务器上没有执行写操作,是没有数据的
这个时候需要使用另外一个技术来实现主从服务器的数据一致性,这个技术叫做 主从复制技术, 所以说主从复制是读写分离的基础
读写分离(MySQL- Proxy)是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力
使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql服务器上
因为数据库的写操作相对读操作是比较耗时的,所以数据库的读写分离,解决的是数据库的写入,影响了查询的效率
在server1和server2先配置gtid主从复制
gtid主从复制上篇博客已经说明,这里不再赘述,只展示最终效果 可以看到server1上建立一个westos数据库,对应的server2上会同步过来
配置server3代理端(mysql-proxy)
在server3上搭建mysql-proxy代理服务器(实现客户端写在server1上、读server2上的数据) (1) 从物理机获取mysql-proxy安装包到server3 (2)在server3上进行配置
测试读写分离
(1)在server1上创建新的用户并且授权
当访问数据库的用户数量很多时,数据库的代理就把后端的数据库实现读写分离 server1是写的数据库、server2是读的数据库 当server1和server2满足gtid的主从复制时,用户往数据库写入的数据其实是写入了server1,并没有写入server2,server2上面的数据是复制过去的,因此server1、server2、客户机上面都能查到刚刚写进去的数据,其实客户机查的是server2(读) 当关闭server1和server2的异步复制时,客户机往数据库写入的数据只写进了server1,没有写进去server2,server2也没有复制一份 因此server1可以查看到,server2和客户机上面都查不到刚刚写进去的数据,此时的客户机读的是server2
以上就是mysql读写分离实现方式是什么的详细内容,更多请关注每日运维其它相关文章!