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

俊达1年前技术文章686

使用查询修改功能,可以在不改变应用程序的情况下,修改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这样的方式引用。



相关文章

MongoDB的索引(一)

一、TTL索引1、语法db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )2、TTL索引...

Admission 准入控制器

准入控制器什么是准入控制器?就是 API 请求进来后,准许它进入或者丰富进来的 API 请求的控制器。如图所示,MutatingAdmissionWebhook 和 ValidatingAdmissi...

MongoDB的SQL优化

一、MongoDB查询优化器1、MongoDB查询优化器1)MongoDB查询优化器会选择最优的一条执行计划来执行SQL。2)查询优化器会缓存那些有多条可用索引的SQL的执行计划条目2、查询优化器原理...

ElasticSearch开启xpack

ElasticSearch开启xpack

ES开启xpack1、生成ca证书(用户名和密码不用设置,一路回车,生成证书文件elastic-stack-ca.p12,生成kibana证书的时候也需要该ca证书)/opt/dtstack/es-6...

 企业级大数据安全架构(七)

企业级大数据安全架构(七)

在企业级大数据安全方案中,本节主要介绍服务安全问题,引入kerberos认证机制,目前直接对接kerberos使用较多,这里我们使用FreeIPA来集成kerberosFreeIPA官网下载地址:ht...

.gitlab-ci.yml 语法

.gitlab-ci.yml 语法

介绍管道配置从作业(job)开始, 作业是 .gitlab-ci.yml 文件的最基本元素。job是:定义了约束,指出应在什么条件下执行具有任意名称的顶级元素,并且必须至少包含 script 子句不限...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。