加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_保定站长网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

mysq通过ProxySQL实现读写分离

发布时间:2021-03-19 11:24:53 所属栏目:站长百科 来源:网络整理
导读:mysq通过ProxySQL实现读写分离 常见的读写分离应用 Oracle:mysql-proxy qihoo:Atlas 美团:dbproxy 网易:cetus amoeba 阿里巴巴:cobar 基于amoeba研发 Mycat:基于cobar实现 ProxySQL ProxySQL:MySQL中间件 版本: 官方版 percona版:percona公司基于官

与规则有关的表:mysql_query_rules和mysql_query_rules_fast_routing,后者是前者的扩展表,1.4.7之后支持
插入路由规则:将select语句分离到20的读组,select语句中有一个特殊语句SELECT...FOR UPDATE它会申请写锁,应路由到10的写组:

insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply) VALUES(1,1,‘^SELECT.*FOR UPDATE$‘,10,1),(2,‘^SELECT‘,1);

load mysql query rules to runtime;
save mysql query rules to disk;
#注意:因ProxySQL根据rule_id顺序进行规则匹配,select ... for update规则的 rule_id必须要小于普通的select规则的rule_id

  
 
  • 测试读操作是否路由给20的读组
    mysql -usqluser -pmagedu -P6033 -h127.0.0.1 -e ‘select @@server_id‘
            +-------------+
            | @@server_id |
            +-------------+
            |         131 |
            +-------------+
  • 测试写操作,以事务方式进行测试
    mysql -usqluser -pcentos -P6033 -h172.22.45.133 -e ‘start transaction;select @@server_id;commit;select @@server_id‘
        +-------------+
        | @@server_id |
        +-------------+
        |         131 |
        +-------------+
        +-------------+
        | @@server_id |
        +-------------+
        |         132 |
        +-------------+
    mysql -usqluser -pcentos -P6033 -h127.0.0.1 -e ‘insert testdb.t values (1)‘
    mysql -usqluser -pcentos -P6033 -h127.0.0.1 -e ‘select id from testdb.t‘
  • 路由的信息:查询stats库中的stats_mysql_query_digest表
    SELECT hostgroup hg,sum_time,count_star,digest_text FROM stats_mysql_query_digest ORDER BY sum_time DESC;
  • (编辑:天瑞地安资讯网_保定站长网)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!