查询重写插件
从MySQL 5.7.6开始,MySQL Server支持查询重写插件,可以在服务器执行之前检查并可能修改服务器接收的语句。
以下是官方文档介绍:
预解析重写插件具有以下特点:
1.该插件允许在服务器处理之前重写到达服务器的SQL语句。
2.该插件接收一个语句字符串,并可能返回一个不同的字符串。
后解析查询重写插件具有以下特征:
1.该插件支持基于解析树的语句重写。
2.服务器解析每个语句并将其解析树传递给插件,插件可以遍历树。插件可以将原始树返回到服务器以进行进一步处理,或者构造不同的树并返回该树。
通俗来讲,是指该插件支持两种重写方式,一种是在语法解析之前,直接修改SQL字符串,一种是在语法解析之后,通过操控语法解析树来进行重写。这个特性还是非常有用的,例如错误的上线了某个SQL,但由于无法走到索引导致全库查询; 或者你可能使用某个第三方的已编译好的软件,但SQL可能执行错误,你又无法直接修改应用,这个特性将会非常有用,还可以去编写符合用户要求的插件。
安装或卸载
最简单的安装过程如下:
shell> mysql -u root -p < install_rewriter.sql Enter password: (enter root password here)