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

俊达2年前技术文章1023

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



相关文章

Doris性能测试

Doris性能测试

1.性能测试(1)环境信息硬件环境 软件环境l Doris 部署 3BE 3FE;l 内核版本:Linux version 5.5.0-96-genericl 操作系统版本:CentOS Linux...

MySQL系统空间上涨

MySQL系统空间上涨

系统空间上涨一、介绍MySQL 的 ibdata1 是一个用来构建 innodb 系统表空间的文件。该文件包含了 undo ,还包含在用户在系统表空间创建的表信息和索引数据。一般如果数据空间均为独立表...

Kafka数据备份

一、数据备份Kafka的数据备份包括两种类型:全量备份和增量备份全量备份是将整个 Kafka 的数据复制到一个不同的地方增量备份是在全量备份后仅仅备份增量的数据二、全量备份# 指定备份的主题BACKU...

MySQL日期相关函数

一、当前时间--当前时间select current_timestamp();--当前时间 等价于 select current_timestamp();select now();--基本等价于以上两...

CDH-Impala集成ldap认证

CDH-Impala集成ldap认证

1、背景集群版本:cdh6.2.0impala版本:3.2.0+cdh6.2.0用户认证:AD由于用户需要使用数据库工具连接impala,但是集群开启了kerberos,如果使用数据库连接工具连接im...

trino容器对接hudi(五)

trino容器对接hudi(五)

前提:本文是基于已经部署了trino容器的基础上进行的。冒烟测试是在trino对接ldap后并且ranger已经对接了metastore权限后,并且spark组件已经对接hudi,并且成功创建hudi...

发表评论    

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