文档主页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  重写器查询重写插件

7.6.4 重写器查询重写插件

MySQL 支持查询重写插件,这些插件可以在服务器执行 SQL 语句之前检查并可能修改它们。请参阅 查询重写插件

MySQL 发行版包含一个名为 Rewriter 的解析后查询重写插件,以及用于安装该插件及其关联元素的脚本。这些元素协同工作以提供语句重写功能。

  • 名为 Rewriter 的服务器端插件会检查语句,并可能根据其内存中的重写规则缓存重写这些语句。

  • 以下语句可能会被重写:SELECTINSERTREPLACEUPDATEDELETE

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

  • Rewriter 插件使用名为 query_rewrite 的数据库,该数据库包含一个名为 rewrite_rules 的表。该表为插件用来决定是否重写语句的规则提供持久存储。用户通过修改存储在此表中的规则集与插件进行通信。插件通过设置表行的 message 列与用户进行通信。

  • query_rewrite 数据库包含一个名为 flush_rewrite_rules() 的存储过程,该过程将规则表的内容加载到插件中。

  • flush_rewrite_rules() 存储过程使用名为 load_rewrite_rules() 的可加载函数。

  • Rewriter 插件公开了启用插件配置的系统变量和提供运行时操作信息的变量。该插件还支持权限 (SKIP_QUERY_REWRITE),该权限可以保护给定用户的查询不被重写。

以下部分介绍如何安装和使用 Rewriter 插件,并提供其关联元素的参考信息。