MySQL 8.4 Release Notes
7.6.4 重写器查询重写插件
MySQL支持查询重写插件,可以检查和可能修改服务器接收到的SQL语句前执行它们。见查询重写插件。
MySQL发行版包括一个名为Rewriter
的postparse查询重写插件和安装插件和相关元素的脚本。这些元素共同提供语句重写能力:
-
一个名为
Rewriter
的服务器插件检查语句,并可能根据其内存缓存的重写规则对其进行重写。 -
这些语句适用于重写:
SELECT
、INSERT
、REPLACE
、UPDATE
和DELETE
。独立语句和预准备语句适用于重写。语句在视图定义或存储程序中出现时不适用于重写。
-
Rewriter
插件使用一个名为query_rewrite
的数据库,包含一个名为rewrite_rules
的表。该表提供了插件用于决定是否重写语句的规则的永久存储。用户通过修改该表中的规则与插件通信。插件通过将message
列中的值设置为表行的值来与用户通信。 -
query_rewrite
数据库包含一个名为flush_rewrite_rules()
的存储过程,该存储过程将规则表中的内容加载到插件中。 -
一个名为
load_rewrite_rules()
的可加载函数由flush_rewrite_rules()
存储过程使用。 -
Rewriter
插件公开系统变量,以便插件配置和状态变量,以便提供实时操作信息。这插件还支持一个权限(SKIP_QUERY_REWRITE
),以保护给定用户的查询免于重写。
以下部分描述了如何安装和使用Rewriter
插件,并提供了其相关元素的参考信息。