前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PROXYSQL 怎么满足只读需求,满足读banlance的需求

PROXYSQL 怎么满足只读需求,满足读banlance的需求

作者头像
AustinDatabases
发布于 2020-10-10 03:34:34
发布于 2020-10-10 03:34:34
7660
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

关于MYSQL的读写的需求,大部分都是在跟读作战,怎么读写分离,是在应用上实现, 或者通过的dns 转接,还是通过简单的中间件实现, 实际上这和需求以及当时可以满足需求的技术以及功耗比有关, 当然这也和数据库的量有关,所以没有那个更好,各花入个眼,没有那个更....

m'n

由于在目前的企业中大批使用了proxysql 作为替代MHA中的VIP功能的方式,已适应目前的需求,所以自然对于读写分离和只读的需求的事情就需要通过proxysql 来实现. 至于proxysql 有多好用,这个不必再说,之前的几期已经阐明了.

今天会实现两个功能,

1 某个账号只能去读取从库,不能去主库进行操作

2 某个账号,可以进行读写分离的功能实现

首先2台MYSQL 主从是要做的,另外如果喜欢可以加上MHA,这里已经忽略上次几期对于 MYSQL replication cluster 和 Innodb cluster 与 PROXYSQL 之间的如何顺利配置和工作的问题,,直接跳到,配置账号的步骤.

在MYSQL 中配置只读账号.

insert into mysql_users(username,password,default_hostgroup,default_schema) values ('read_only','1234.com',601,'mysql');

不知道 601 的意思的同学可以参照前两篇文字里面的hostgroup 定义,这里里面600表示写库 601 表示读库 这里面可以自定义.

所以经过上面的设置后,通过read_only账号则一定会访问读库,而不会访问写库.

红色的位置已经标明我们已经通过这个账号直接到了读库,而不是写库.

第一个需求已经完成了,那就到了第二个需求,我需要进行读写,这里需要进行相关的匹配,这个需求主要需要考虑几点

1 哪些开头的语句需要转移到读库

2 需要对于语句出现在事务的读做特殊处理

3 需要确认读库和主库的之间是否有延迟

问题一个一个回答

1 select 语句,一定是SELECT 语句,当然在proxysql中绑定是需要注意的

2 这个是需要验证的

3 在proxysql中是有相关的配置,通过second behind master 参数来做比对

在继续下面的文字之前,个人觉得在大部分的读写分离目前还是采用应用逻辑来做的不少,当然也有中间件来做的,在实际当中还是应用逻辑配合中间件来做的更合理一些,完全一种技术想HOLD整个的场景是有疏漏的.

问题1 在mysql的 query rule 中增加关于select 开头的语句的去向

并加载到proxysql中,然后直接测试到底是不是select的查询去了从库

这里会进行一个标识方便确认,这里将主库的一个表和从库的对应的表的数据进行不一致的处理,让从库比主库多一条数据库.

下面截图是从中间件访问,不同的语句可以访问同一个表,到达不同的数据库,第一个是到达从库,因为从库比主库的表多一行数据, 而使用了for update后则语句直接到了主库.

这就回答了第二个问题,如果我们有事务,则业务场景是我们读取数据,并且马上根据数据的结果进行DML 操作,则需要在语句中增加 for update .

满足事务统一在主库进行的要求. 而一般的查询,在从库进行,进行相关的读写分离,和事务中特殊的SELECT 语句与普通SELECT 查询的分割.

最后 一个问题通过UPDATE mysql_servers SET max_replication_lag=3;

来设置判断主从之间的存在差异以及容忍的时间,这里设置了是3秒 ,当然有关于与各个服务器进行monitor的配置也要进行变动.

另外在多提一个问题,如果我有多个从库,那怎么让80%的查询到一个从库,让20%的查询到另一个从库,可以设置吗? 答可以

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ProxySQL+Mysql实现数据库读写分离实战
ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎。具有以下特性:http://www.proxysql.com/
民工哥
2020/09/16
3.3K0
ProxySQL+Mysql实现数据库读写分离实战
用 ProxySQL 实现 MySQL 的读写分离
这个配置包含了基本的故障转移设置。如果从服务器的复制延迟超过10秒,ProxySQL会将查询路由到其他可用的从服务器或主服务器。
贺春旸的技术博客
2024/07/30
2010
ProxySQL!像C罗一样的强大!
作者 | 张甦, 数据库领域的专家和知名人士、图书《MySQL王者晋级之路》作者,51CTO 专家博主。近10年互联网线上处理及培训经验,专注于 MySQL 数据库,对 MongoDB、Redis 等 NoSQL 数据库以及 Hadoop 生态圈相关技术有深入研究,具备非常丰富的理论与实战经验。
数据和云
2018/07/27
1.4K0
ProxySQL!像C罗一样的强大!
技术分享 | ProxySQL 搭配 MySQL HA (上)
资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。
爱可生开源社区
2021/12/27
1K0
MySQL高可用实现:主从结构下ProxySQL中的读写分离
ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎。具有以下特性:
数据和云01
2019/06/15
9060
是时候聊一聊ProxySQL功能测试了
ProxySQL 是 MySQL 的高性能、高可用性、协议感知代理。支持包括读写分离、故障转换、query 的过滤和路由等功能。本文将从 Proxysql 的基本功能测试、异常情况测试来聊聊 ProxySQL 功能。
深度学习与Python
2021/11/19
1.2K0
MySQL中间件之ProxySQL(10):读写分离方法论「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说MySQL中间件之ProxySQL(10):读写分离方法论「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/02/21
6480
MySQL中间件之ProxySQL(10):读写分离方法论「建议收藏」
MySQL读写分离(ProxySQL)
读写分离就是用户在发送请求时,请求经过中间件,中间件将请求中的读和写操作分辨出来将读请求发送给后端的从服务器,将写请求发送给后端的主服务器,再又主服务器通过主从复制将数据复制给其他从服务器
Java帮帮
2019/05/17
6.3K0
MySQL读写分离(ProxySQL)
ProxySQL + MySQL MGR读写分离架构的Sysbench只读压测报告
在大量并发读请求、读多写少的业务场景下,本文利用 Sysbench 性能测试工具,调研基于【负载均衡 + ProxySQL Cluster + MySQL MGR 的读写分离架构】能否有效利用横向扩展的 MySQL 实例的读能力,并最终提高应用系统 QPS。
深度学习与Python
2021/12/09
9510
ProxySQL + MySQL MGR读写分离架构的Sysbench只读压测报告
MYSQL 中间件 为什么选择 PROXYSQL VS INNODB CLUSTER
没有磨难,怎么能得到心灵的平静,吃过苦,才懂得甜的味道,Just waitting .
AustinDatabases
2020/08/27
6890
解锁高并发!一步步教你用 ProxySQL 实现 MySQL 读写分离
ProxySQL 是一款高性能、高可定制化的 MySQL 代理,支持读写分离、故障转移和查询缓存等功能,广泛用于大规模生产环境中。
IT咸鱼
2025/05/25
1970
解锁高并发!一步步教你用 ProxySQL 实现 MySQL 读写分离
【DB宝42】MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡(上)
之前发过一篇MHA的文章,介绍了MHA相关的知识和功能测试,连接为:【DB宝19】在Docker中使用MySQL高可用之MHA 。今天这一篇给大家分享一下“MHA+中间件ProxySQL”来实现读写分离+负载均衡的相关知识。
AiDBA宝典
2021/03/08
6550
【DB宝42】MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡(上)
MYSQL 中间件 为什么选择 PROXYSQL VS MHA
MYSQL 的中间件其实也不少,但实际上用的比较广的(非分库分表)的选择点基本上会落到 PROXYSQL 和 MyRouter 两个中间件中,1使用的人数多,2 丰富的文档和相当多的案例
AustinDatabases
2020/08/26
1.1K0
图文结合丨GreatSQL MGR + ProxySQL集群搭建方案
ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。
GreatSQL社区
2023/09/20
3270
图文结合丨GreatSQL MGR + ProxySQL集群搭建方案
ProxySQL简介原理及读写分离应用
https://www.cnblogs.com/you-men/p/12838333.html
iginkgo18
2020/09/27
2.3K0
ProxySQL简介原理及读写分离应用
mysql 高可用技术
1原主库ssh能连接,截取缺失部分日志scp到各个从库(/var/tmp/xxxx)调用save_binary_logs
萧晚歌
2022/03/26
1.5K0
万字详述 MySQL ProxySQL
墨墨导读:Proxysql读写分离的中间件,支持高可用 主从\ MGR \ PXC等环境,并提供连接池、缓存、日志记录等功能。
数据和云
2020/08/14
2.2K0
万字详述 MySQL ProxySQL
Proxy实现mysql读写分离
ProxySQL 是一款可以实际用于生产环境的 MySQL 中间件,它有官方版和 percona 版两种。percona版是在官方版的基础上修改的,添加了几个比较实用的工具。生产环境建议用官方版。
全栈程序员站长
2022/07/25
2.3K0
Proxy实现mysql读写分离
ProxySQL 入门教程
目前可以很好的支持 Master Slave\ MGR \ PXC等,并提供连接池、读写分离、日志记录等功能,当然还有很多其他实用功能,这里不一一列举了。
iMike
2019/07/10
3.8K0
proxy SQL实现MySQL主从读写分离
ProxySQL 是一款可以实际用于生产环境的 MySQL 中间件,它有官方版和 percona 版两种。percona版是在官方版的基础上修改的,添加了几个比较实用的工具。本文以官方版本为例。
互联网-小阿宇
2022/11/21
1.7K0
proxy SQL实现MySQL主从读写分离
相关推荐
ProxySQL+Mysql实现数据库读写分离实战
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档