### 5.6.4 重写器查询重写插件

[5.6.4.1 安装或卸载重写器查询重写插件](rewriter-query-rewrite-plugin-installation.html)
[5.6.4.2 使用重写器查询重写插件](rewriter-query-rewrite-plugin-usage.html)
[5.6.4.3 重写器查询重写插件参考](rewriter-query-rewrite-plugin-reference.html)

[](<>)[](<>)

MySQL 支持查询重写插件，这些插件可以在服务器执行之前检查并可能修改服务器接收到的 SQL 语句。看[查询重写插件](https://dev.mysql.com/doc/extending-mysql/8.0/en/plugin-types.html#query-rewrite-plugin-type).

MySQL 发行版包括一个名为的 postparse 查询重写插件`重写器`以及用于安装插件及其相关元素的脚本。这些元素协同工作以提供语句重写功能：

-   一个名为的服务器端插件`重写器`根据其内存中的重写规则缓存检查语句并可能重写它们。

-   这些陈述可能会被重写：

    -   从 MySQL 8.0.12 开始：[`选择`](select.html),[`插入`](insert.html),[`代替`](replace.html),[`更新`](update.html)， 和[`删除`](delete.html).

    -   在 MySQL 8.0.12 之前：[`选择`](select.html)只要。

        独立语句和准备好的语句可能会被重写。视图定义或存储程序中出现的语句不会被重写。

-   这`重写器`插件使用一个名为的数据库`查询重写`包含一个名为`重写规则`.该表为插件用来决定是否重写语句的规则提供持久存储。用户通过修改存储在此表中的规则集与插件进行通信。该插件通过设置`信息`表格行的列。

-   这`查询重写`数据库包含一个名为`flush_rewrite_rules()`将规则表的内容加载到插件中。

-   一个名为的可加载函数[`load_rewrite_rules()`](rewriter-query-rewrite-plugin-reference.html#function_load-rewrite-rules)被使用`flush_rewrite_rules()`存储过程。

-   这`重写器`插件公开了启用插件配置的系统变量和提供运行时操作信息的状态变量。

    以下部分介绍了如何安装和使用`重写器`插件，并为其相关元素提供参考信息。
