MySQL 8.4 发行说明
MySQL 支持查询重写插件,这些插件可以在服务器执行 SQL 语句之前检查并可能修改它们。请参阅 查询重写插件。
MySQL 发行版包含一个名为 Rewriter
的后解析查询重写插件,以及用于安装该插件及其相关元素的脚本。这些元素协同工作以提供语句重写功能。
名为
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
插件,并提供其相关元素的参考信息。