我这里的实验环境:

单机proxysql+mgr单主,已经配置好了读写分离策略。这些都不是本文的重点,就一带而过吧。


我下面只贴基于sql指纹的阻断的配置。




我们这里先查看下当前proxysql的 query rule表

none rule_idactivedigestmatch_patternre_modifiersdestination_hostgroupapply
 runtime_mysql_query_rules

rule_id  active  digest             match_pattern         re_modifiers destination_hostgroup  apply 

                            .FOR $  CASELESS                                 
                                           CASELESS

 

先重置下统计信息,方便下面的实验结果的查看

none   stats_mysql_query_digest_reset

 

连接proxysql的sql端口,去执行些sql模拟业务查询操作

sbtest
 id  sbtest2  id   id    


id   

           
           

rows    sec

sbtest
 idpad  sbtest2  id   idpad  


id  pad                                                   

             
             

rows    sec


sbtest 
 idpadkfrom sbtest2 
 pad   
  pad  k  
   


id       pad                                                          k       

    

    


 rows    sec

 

去proxysql 后台看下捕获到的sql指纹信息如下:

none  hostgroupcount_starsum_timedigestdigest_text  stats_mysql_query_digest   digest_text

 hostgroup  count_star  sum_time  digest              digest_text                                                                   

                                id  sbtest2  id  id  
                               idpad  sbtest2  id  idpad