好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL查詢重寫插件的使用

MySQL查詢重寫插件的使用

熱門標簽:日照旅游地圖標注 申請外呼電話線路 湖南人工外呼系統多少錢 石家莊電商外呼系統 南通自動外呼系統軟件 廣東人工電話機器人 信陽穩定外呼系統運營商 百度地圖圖標標注中心 芒果電話機器人自動化

查詢重寫插件

從MySQL 5.7.6開始,MySQL Server支持查詢重寫插件,可以在服務器執行之前檢查并可能修改服務器接收的語句。

以下是官方文檔介紹:

  預解析重寫插件具有以下特點:

1.該插件允許在服務器處理之前重寫到達服務器的SQL語句。

2.該插件接收一個語句字符串,并可能返回一個不同的字符串。

后解析查詢重寫插件具有以下特征:

  1.該插件支持基于解析樹的語句重寫。

  2.服務器解析每個語句并將其解析樹傳遞給插件,插件可以遍歷樹。插件可以將原始樹返回到服務器以進行進一步處理,或者構造不同的樹并返回該樹。

通俗來講,是指該插件支持兩種重寫方式,一種是在語法解析之前,直接修改SQL字符串,一種是在語法解析之后,通過操控語法解析樹來進行重寫。這個特性還是非常有用的,例如錯誤的上線了某個SQL,但由于無法走到索引導致全庫查詢; 或者你可能使用某個第三方的已編譯好的軟件,但SQL可能執行錯誤,你又無法直接修改應用,這個特性將會非常有用,還可以去編寫符合用戶要求的插件。

安裝或卸載

最簡單的安裝過程如下:

shell> mysql -u root -p  install_rewriter.sql Enter password: (enter root password here)

可以發現,在數據庫中多增加了一個庫query_rewrite,查看該數據庫:

查看插件當前是否安裝:

實踐操作

例如為如下語句強制使用主鍵查詢:

SELECT DBA_no, name from DBA_inf where DBA_no = ?

改寫成:

SELECT DBA_no, name from DBA_inf force index(primary) where DBA_no = ?

要為Rewriter插件添加規則,具體步驟分為兩步:

1.向rewrite_rules表中添加相應的規則;

2.調用flush_rewrite_rules()存儲過程以將表中的規則加載到插件中。

以下示例創建一個簡單規則來匹配選擇單個文字值的語句,執行的操作:

insert into query_rewrite.rewrite_rules(pattern, replacement, pattern_database) values ("SELECT DBA_no, name from DBA_inf where DBA_no = ?","SELECT DBA_no, name from DBA_inf force index(primary) where DBA_no = ?","DBAs");

查詢剛剛插入的規則:

輸出的規則每一列的內容如下:

id:

規則ID。此列是表主鍵??梢允褂迷揑D唯一標識任何規則。

pattern:

指示規則匹配的語句模式的模板,使用?表示匹配的數據值。

pattern_database:

該數據庫用于匹配語句中的非限定表名。如果相應的數據庫和表名相同,則語句中的限定表名與模式中的限定名匹配;當默認數據庫pattern_database與表名相同且語句名相同時,語句中的非限定表名才匹配模式中的非限定名稱 。

replacement:

指示如何重寫與pattern列值匹配的語句的模板。使用 ?表示匹配的數據值,?是參數標記,實際語句中可以替換。

enabled:

規則是否已啟用。加載操作(通過調用flush_rewrite_rules() 存儲過程執行)Rewriter僅在此列加載時才將表中的規則加載到 內存緩存中YES。此列可以在不刪除規則的情況下停用規則:將列設置為除YES表之外的值 ,然后將表重新加載到插件中。

message:

該插件使用此列與用戶進行通信。如果將規則表加載到內存中時沒有發生錯誤,則插件會將message 列設置為NULL。非NULL值表示錯誤,列內容是錯誤消息。在這些情況下可能會發生錯誤:1.模式或替換是一個產生語法錯誤的錯誤SQL語句。2.替換包含比模式更多的參數標記。如果發生加載錯誤,插件還會將 Rewriter_reload_error狀態變量設置為ON。

pattern_digest:

此列用于調試和診斷。如果在將規則表加載到內存中時該列存在,則插件會使用模式摘要更新它。此列可幫助確定某些語句無法重寫的原因。

normalized_pattern

此列用于調試和診斷。如果在將規則表加載到內存中時該列存在,則插件會使用模式的規范化形式對其進行更新。如果您嘗試確定某些語句無法重寫的原因,則此列可能很有用。

重寫器查詢重寫插件過程

將規則添加到 rewrite_rules表中不足以使Rewriter插件使用該規則。還必須調用flush_rewrite_rules()以將表內容加載到插件內存緩存中:

Rewriter插件操作使用存儲過程將規則表加載到其內存緩存中,在正常操作下,用戶僅調用flush_rewrite_rules()從而將rewrite_rules表的內容加載到Rewriter內存高速緩存中。加載表后,它還會清除查詢緩存。

當修改規則表后,需要重新調用此過程以使插件從新表內容更新其緩存:

使用重寫插件中定義的語句模式查詢相應記錄:

SELECT DBA_no, name from DBA_inf where DBA_no =8;

通過使用explain語句查看,當前SQL已經使用了索引

重寫插件操作信息

該Rewriter插件通過幾個狀態變量提供有關其操作的信息:

有關這些變量的說明:

  • Rewriter_number_loaded_rules:成功從rewrite_rules表中加載到內存中以供Rewriter 插件使用的重寫插件重寫規則的數量。
  • Rewriter_number_reloads:rewrite_rules被加載到Rewriter插件緩存中的次數。
  • Rewriter_number_rewritten_queries:Rewriter查詢重寫插件自加載以來重寫的查詢數 。
  • Rewriter_reload_error:是否在最近將rewrite_rules表加載到Rewriter 插件使用的內存高速緩存中時發生錯誤 。如果值為OFF,則不會發生錯誤。如果值為,則ON發生錯誤;檢查表的message列rewriter_rules是否有錯誤消息。

通過調用flush_rewrite_rules()存儲過程加載規則表時 ,如果某些規則發生錯誤,則該CALL 語句會產生錯誤,并且該插件會將 Rewriter_reload_error狀態變量設置為ON:

在這種情況下,請檢查rewrite_rules表中是否包含非NULL message列值的行,以查看存在的問題。

重寫器插件使用字符集

當rewrite_rules表加載到Rewriter插件中時,插件使用character_set_client系統變量的當前全局值來解釋語句 。如果character_set_client隨后更改全局 值,則必須重新加載規則表。

客戶端的會話character_set_client值必須 與加載規則表時的全局值相同,否則規則匹配將不適用于該客戶端。

以上就是MySQL查詢重寫插件的使用的詳細內容,更多關于MySQL查詢重寫插件的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • zabbix通過percona插件監控mysql的方法
  • Spring mvc整合mybatis(crud+分頁插件)操作mysql
  • MySql5.6使用validate password 插件加強密碼強度的安裝及使用方法
  • MySQL 密碼增強插件
  • MySQL中InnoDB的Memcached插件的使用教程
  • 詳解MySQL下InnoDB引擎中的Memcached插件
  • MySQL HandlerSocket插件安裝配置教程
  • 發款php蜘蛛統計插件只要有mysql就可用
  • 發款php蜘蛛統計插件只要有mysql就可用
  • MySQL連接控制插件介紹

標簽:合肥 呼和浩特 牡丹江 惠州 天津 阿里 沈陽 公主嶺

巨人網絡通訊聲明:本文標題《MySQL查詢重寫插件的使用》,本文關鍵詞  MySQL,查詢,重寫,插件,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL查詢重寫插件的使用》相關的同類信息!
  • 本頁收集關于MySQL查詢重寫插件的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 丰满少妇免费做爰大片人漫画| 福利800av视频导航| 日韩精品人妻一区二区中文八零 | 拍三级的时候真的进去了吗| 美女裸露屁屁和奶头视频AV| 两乳高耸奶头挺立呻吟| 99久久久免费精品免费| 国产精品偷伦视频免费最新章节| 揉我奶头?啊?嗯高潮av| 主奴调教露出羞耻穿环视频 | 国产 精品 探花 熟女 AV| 精品国产呦系列在线看| bl文高h 好深| 无限免费观看动漫日本| 国产熟女鲁鲁视频草莓AV| 欧美97色伦欧美一区二区日韩| 免费看靠逼软件| 一级特黄aaa大片在线观看| 九九热精品在线视频| 无码国内精品久久人妻中文成人| 女人扒开秘?让男人桶爽韩剧| 亚洲午夜在线播放| 91色香sxmv最网页版新地址| 人与狗zoo| 女仆扒开腿秘?让人桶爽网站| 91国内精品久久久久精品一本 | 一级做a爰片久久毛片A片冒白浆| 91粉色视频在线导航| 你是我的奴隶| 99久久国产精品免费热7788介绍| 精品一区高潮喷吹在线播放| 日本19禁啪啪无遮挡免费动图| 黄色网址app| 高h肉辣短篇合集| 掀开奶罩边躁狠狠躁学生的小文字 | 91精品国产一区二区人妖| 全免费A级毛片免费视频播放| 97精品国产高清自在线看超| 延庆县| 丝足直播app| 做性行为全部过程|