7.6.4 Плагин переписывания запросов Rewriter
MySQL поддерживает плагины переписывания запросов, которые могут анализировать и, возможно, изменять SQL-запросы, полученные сервером, перед их выполнением сервером. См. Плагины переписывания запросов.
Дистрибутивы MySQL включают плагин переписывания запросов postparse, именуемый 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, а также предоставляют справочную информацию о связанных элементах.
© 2025 Oracle
Licensed under the GPLv2 License.