支持 SQL 查询重写

需求反馈

【需求涉及的问题场景】
线上可能出现一些对集群整体性能或可用性造成重大影响的 SQL,在定位并处理这些 SQL 之前,希望在 DB 层及时拦截改写 SQL,减少线上正常业务的影响,可能遇到的场景包括但不限于:

  • SQL 注入攻击

  • SQL 触发产品 bug,导致 Server panic 或 OOM

  • 应用程序 bug,比如业务上线后,某个接口被频繁调用,导致集群负载过高影响整体性能,但业务人员无法及时定位并修复问题

  • SQL 未经充分审核调优就上线,出现报错或性能问题,比如写错字段名或者 DDL 更改字段名后业务没改,varchar 字段值没有加引号或没有加索引

【期望的需求行为】

  • 开启查询重写功能后,Server 端首先检查 SQL 是否匹配重写规则,如果能匹配重写之后再执行
    参考 MySQL Query Rewrite Plugin

【需求可替代方案】

  • 外部 Proxy 设计 SQL 熔断拦截或业务降级

【背景信息】