MySQL运维实战之ProxySQL(9.8)SQL镜像

俊达1年前技术文章461

使用proxysql的镜像(mirror)功能,可以将SQL发送到一个额外的后端实例执行。

还可以将发送到镜像的SQL进行改写,以测试修改后的SQL是否能正常执行。

通过mirror_flagOut字段,可以将多条规则串联起来,实现这样的需求:不修改原始的SQL,只修改镜像后的SQL,这样可以在不影响当前业务的情况下,测试SQL改写的效果。



delete from mysql_query_rules;

-- 执行SQL,同时将SQL mirror一份
insert into mysql_query_rules
(rule_id, username, match_pattern, destination_hostgroup, 
 mirror_flagOut, active, apply, comment )
values (20, 'user1', '^SELECT', 100, 
  1001, 1, 1, 'mirror');

-- 对于mirror的SQL,增加注释,发送到hostgroup 101执行
insert into mysql_query_rules
(rule_id, username, flagIn, match_pattern, destination_hostgroup, 
 replace_pattern, active, apply, comment )
values (21, 'user1', 1001, '^SELECT', 101, 
  'select /*+ mirrored */', 1, 1, 'mirror sql modified');


load mysql query rules to runtime;


相关文章

MySQL优化器特性(四)表关联之BNL(Block Nested Loop)和Hash Join

MySQL优化器特性(四)表关联之BNL(Block Nested Loop)和Hash Join

什么是BNLMySQL表关联时,如果关联条件上没有合适的索引,则join时,对于驱动表的每一条记录,都需要全表扫描被驱动表。如果驱动表有多条数据,则需要多次全表扫描被驱动表,查询性能很差。对于这种情况...

Trino配置yanagishima-23.0(包含编译)

Trino配置yanagishima-23.0(包含编译)

1 环境介绍1.1 本文采用trino 359yanagishima v23.02 编译yanagishima2.1 安装编译yanagishima需要的工具安装编译yanagishima需要的工具w...

ES运维(一)底层数据存储原理

ES运维(一)底层数据存储原理

1、ES底层数据存储原理架构图Segment工作流程:A、 新的文档在内存中组织B、 每隔一段时间,buffer将会被提交:生成一个新的segment(一个额外的新的倒序索引)并被写到磁盘,同时一个新...

CPU--平均负载

1、原理概述平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。   * ...

CPU--使用率

CPU--使用率

一、CPU和任务统计信息查询/proc/stat第一行表示所有CPU的累加其他列表示不同场景下CPU的累加节拍数,单位:USER_HZ即10ms➜  ~ cat ...

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

目前Spark中Structured Streaming只支持实时向Iceberg中写入数据,不支持实时从Iceberg中读取数据,下面案例我们将使用Structured Streaming从Kafk...

发表评论    

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