MySQL 9.0 发行说明
MySQL 支持查询重写插件,这些插件可以在服务器执行 SQL 语句之前检查并可能修改它们。请参阅 查询重写插件。
MySQL 发行版包含一个名为 Rewriter
的解析后查询重写插件,以及用于安装该插件及其关联元素的脚本。这些元素协同工作以提供语句重写功能。
名为
Rewriter
的服务器端插件会检查语句,并可能根据其内存中的重写规则缓存重写这些语句。以下语句可能会被重写:
SELECT
、INSERT
、REPLACE
、UPDATE
和DELETE
。独立语句和预处理语句可能会被重写。视图定义或存储程序中出现的语句不会被重写。
Rewriter
插件使用名为query_rewrite
的数据库,该数据库包含一个名为rewrite_rules
的表。该表为插件用来决定是否重写语句的规则提供持久存储。用户通过修改存储在此表中的规则集与插件进行通信。插件通过设置表行的message
列与用户进行通信。query_rewrite
数据库包含一个名为flush_rewrite_rules()
的存储过程,该过程将规则表的内容加载到插件中。flush_rewrite_rules()
存储过程使用名为load_rewrite_rules()
的可加载函数。Rewriter
插件公开了启用插件配置的系统变量和提供运行时操作信息的变量。该插件还支持权限 (SKIP_QUERY_REWRITE
),该权限可以保护给定用户的查询不被重写。
以下部分介绍如何安装和使用 Rewriter
插件,并提供其关联元素的参考信息。