我這里的實(shí)驗(yàn)環(huán)境:

單機(jī)proxysql+mgr單主,已經(jīng)配置好了讀寫分離策略。這些都不是本文的重點(diǎn),就一帶而過(guò)吧。


我下面只貼基于sql指紋的阻斷的配置。




我們這里先查看下當(dāng)前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

 

先重置下統(tǒng)計(jì)信息,方便下面的實(shí)驗(yàn)結(jié)果的查看

none   stats_mysql_query_digest_reset

 

連接proxysql的sql端口,去執(zhí)行些sql模擬業(yè)務(wù)查詢操作

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 后臺(tái)看下捕獲到的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