Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The Rewriter Query Rewrite Plugin

7.6.4 重写器查询重写插件

MySQL支持查询重写插件,可以检查和可能修改服务器接收到的SQL语句前执行它们。见查询重写插件

MySQL发行版包括一个名为Rewriter的postparse查询重写插件和安装插件和相关元素的脚本。这些元素共同提供语句重写能力:

  • 一个名为Rewriter的服务器插件检查语句,并可能根据其内存缓存的重写规则对其进行重写。

  • 这些语句适用于重写:SELECTINSERTREPLACEUPDATEDELETE

    独立语句和预准备语句适用于重写。语句在视图定义或存储程序中出现时不适用于重写。

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

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

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

  • Rewriter插件公开系统变量,以便插件配置和状态变量,以便提供实时操作信息。这插件还支持一个权限(SKIP_QUERY_REWRITE),以保护给定用户的查询免于重写。

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