MySQL运维实战之ProxySQL(9.7)改写SQL

作者:俊达

使用查询修改功能,可以在不改变应用程序的情况下,修改SQL语句。比如,我们可以使用SQL改写的功能,给SQL添加hint,以此来优化性能。

delete from mysql_query_rules;

insert into mysql_query_rules
(rule_id, username, match_pattern, replace_pattern, 
  destination_hostgroup, active, apply, comment )
values (20, 'user1',
  '^SELECT\s+(.*?)\s+FROM\s+ta\s+where\s+a\s+=\s+(\d+)$',
  'SELECT \1 FROM ta force index(idx_a) WHERE A = \2', 
  101, 1, 1, 'add force index');

load mysql query rules to runtime;

在上面的例子中,我们给查询加上了force index的hint。
查询修改是通过正则表达式实现的。

match_pattern中,可以将表达式通过括号括起来,

replace_pattern中,可以应用match_pattern匹配到的括号中的内容,使用\1 \2这样的方式引用。

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值