作者:俊达
使用查询修改功能,可以在不改变应用程序的情况下,修改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