zoukankan      html  css  js  c++  java
  • proxysql系列~ 读写分离核心介绍

    基础
    1 如果不配置任何匹配规则,则所有读写都会打入主库
    2 事务内的读操作被看作事务的一部分,会打入主库
    场景
    1 预先所有读写都在主库,然后编写匹配规则,将一部分sql写上正则匹配,打入从库
    2 将所有读都在从库,然后编写匹配规则,将一部分sql写上正则匹配,打入主库 (推荐)
    mysql_query_rules
    关键字段
    username:用户名筛选,当设置为非NULL值时,只有匹配的用户建立的连接发出的查询才会被匹配。
    client_addr:通过源地址进行匹配。
    match_pattern: 是基于原始SQL语句进行匹配的,包括参数值(常用) 如果想对match_pattern取反,即不被正则匹配的SQL语句才命中规则,则设置mysql_query_rules表中的字段negate_match_pattern=1
    digest:此值可以通过 stats_mysql_query_digest 进行查询 匹配相同的sql语句

    插入
    insert into mysql_query_rules(rule_id,active,match_pattern,destination_hostgroup,apply) values(rule_id,1,'正则表达式','主还是从',1) 正则^select .*

    具体规则

    digest 匹配 类似0xC2E46F0CB1023FA5  
    match_pattern 类似 '^select' 基于原始SQL语句进行匹配的,带值
    match_digest 类似 基于sql模具匹配的 (常用) 案例 ^select .*table.*

    规则从上向下匹配 ^select 放在最后一条

    查看匹配规则是否命中
    select * from stats_mysql_query_rules; 查看规则是否被hit

  • 相关阅读:
    无缝滚动轮播图
    angular 1.6指令与服务
    angular 1.6路由
    javascript 对象
    JavaScript的运算符
    初识JavaScript!
    git常用命令(二)文字版
    CSS水平垂直居中
    收藏的一些牛逼博客
    html5 学习汇总
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/11733133.html
Copyright © 2011-2022 走看看