日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL查詢重寫插件的使用

瀏覽:21日期:2023-10-09 14:21:08

查詢重寫插件

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

以下是官方文檔介紹:

預(yù)解析重寫插件具有以下特點(diǎn):

1.該插件允許在服務(wù)器處理之前重寫到達(dá)服務(wù)器的SQL語(yǔ)句。

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

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

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

2.服務(wù)器解析每個(gè)語(yǔ)句并將其解析樹傳遞給插件,插件可以遍歷樹。插件可以將原始樹返回到服務(wù)器以進(jìn)行進(jìn)一步處理,或者構(gòu)造不同的樹并返回該樹。

通俗來(lái)講,是指該插件支持兩種重寫方式,一種是在語(yǔ)法解析之前,直接修改SQL字符串,一種是在語(yǔ)法解析之后,通過(guò)操控語(yǔ)法解析樹來(lái)進(jìn)行重寫。這個(gè)特性還是非常有用的,例如錯(cuò)誤的上線了某個(gè)SQL,但由于無(wú)法走到索引導(dǎo)致全庫(kù)查詢; 或者你可能使用某個(gè)第三方的已編譯好的軟件,但SQL可能執(zhí)行錯(cuò)誤,你又無(wú)法直接修改應(yīng)用,這個(gè)特性將會(huì)非常有用,還可以去編寫符合用戶要求的插件。

安裝或卸載

最簡(jiǎn)單的安裝過(guò)程如下:

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

MySQL查詢重寫插件的使用

可以發(fā)現(xiàn),在數(shù)據(jù)庫(kù)中多增加了一個(gè)庫(kù)query_rewrite,查看該數(shù)據(jù)庫(kù):

MySQL查詢重寫插件的使用

查看插件當(dāng)前是否安裝:

MySQL查詢重寫插件的使用

實(shí)踐操作

例如為如下語(yǔ)句強(qiáng)制使用主鍵查詢:

SELECT DBA_no, name from DBA_inf where DBA_no = ?

改寫成:

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

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

1.向rewrite_rules表中添加相應(yīng)的規(guī)則;

2.調(diào)用flush_rewrite_rules()存儲(chǔ)過(guò)程以將表中的規(guī)則加載到插件中。

以下示例創(chuàng)建一個(gè)簡(jiǎn)單規(guī)則來(lái)匹配選擇單個(gè)文字值的語(yǔ)句,執(zhí)行的操作:

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');

查詢剛剛插入的規(guī)則:

MySQL查詢重寫插件的使用

輸出的規(guī)則每一列的內(nèi)容如下:

id:

規(guī)則ID。此列是表主鍵。可以使用該ID唯一標(biāo)識(shí)任何規(guī)則。

pattern:

指示規(guī)則匹配的語(yǔ)句模式的模板,使用?表示匹配的數(shù)據(jù)值。

pattern_database:

該數(shù)據(jù)庫(kù)用于匹配語(yǔ)句中的非限定表名。如果相應(yīng)的數(shù)據(jù)庫(kù)和表名相同,則語(yǔ)句中的限定表名與模式中的限定名匹配;當(dāng)默認(rèn)數(shù)據(jù)庫(kù)pattern_database與表名相同且語(yǔ)句名相同時(shí),語(yǔ)句中的非限定表名才匹配模式中的非限定名稱 。

replacement:

指示如何重寫與pattern列值匹配的語(yǔ)句的模板。使用 ?表示匹配的數(shù)據(jù)值,?是參數(shù)標(biāo)記,實(shí)際語(yǔ)句中可以替換。

enabled:

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

message:

該插件使用此列與用戶進(jìn)行通信。如果將規(guī)則表加載到內(nèi)存中時(shí)沒(méi)有發(fā)生錯(cuò)誤,則插件會(huì)將message 列設(shè)置為NULL。非NULL值表示錯(cuò)誤,列內(nèi)容是錯(cuò)誤消息。在這些情況下可能會(huì)發(fā)生錯(cuò)誤:1.模式或替換是一個(gè)產(chǎn)生語(yǔ)法錯(cuò)誤的錯(cuò)誤SQL語(yǔ)句。2.替換包含比模式更多的參數(shù)標(biāo)記。如果發(fā)生加載錯(cuò)誤,插件還會(huì)將 Rewriter_reload_error狀態(tài)變量設(shè)置為ON。

pattern_digest:

此列用于調(diào)試和診斷。如果在將規(guī)則表加載到內(nèi)存中時(shí)該列存在,則插件會(huì)使用模式摘要更新它。此列可幫助確定某些語(yǔ)句無(wú)法重寫的原因。

normalized_pattern

此列用于調(diào)試和診斷。如果在將規(guī)則表加載到內(nèi)存中時(shí)該列存在,則插件會(huì)使用模式的規(guī)范化形式對(duì)其進(jìn)行更新。如果您嘗試確定某些語(yǔ)句無(wú)法重寫的原因,則此列可能很有用。

重寫器查詢重寫插件過(guò)程

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

Rewriter插件操作使用存儲(chǔ)過(guò)程將規(guī)則表加載到其內(nèi)存緩存中,在正常操作下,用戶僅調(diào)用flush_rewrite_rules()從而將rewrite_rules表的內(nèi)容加載到Rewriter內(nèi)存高速緩存中。加載表后,它還會(huì)清除查詢緩存。

當(dāng)修改規(guī)則表后,需要重新調(diào)用此過(guò)程以使插件從新表內(nèi)容更新其緩存:

MySQL查詢重寫插件的使用

使用重寫插件中定義的語(yǔ)句模式查詢相應(yīng)記錄:

SELECT DBA_no, name from DBA_inf where DBA_no =8;

MySQL查詢重寫插件的使用

通過(guò)使用explain語(yǔ)句查看,當(dāng)前SQL已經(jīng)使用了索引

MySQL查詢重寫插件的使用

重寫插件操作信息

該Rewriter插件通過(guò)幾個(gè)狀態(tài)變量提供有關(guān)其操作的信息:

MySQL查詢重寫插件的使用

有關(guān)這些變量的說(shuō)明:

Rewriter_number_loaded_rules:成功從rewrite_rules表中加載到內(nèi)存中以供Rewriter 插件使用的重寫插件重寫規(guī)則的數(shù)量。 Rewriter_number_reloads:rewrite_rules被加載到Rewriter插件緩存中的次數(shù)。 Rewriter_number_rewritten_queries:Rewriter查詢重寫插件自加載以來(lái)重寫的查詢數(shù) 。 Rewriter_reload_error:是否在最近將rewrite_rules表加載到Rewriter 插件使用的內(nèi)存高速緩存中時(shí)發(fā)生錯(cuò)誤 。如果值為OFF,則不會(huì)發(fā)生錯(cuò)誤。如果值為,則ON發(fā)生錯(cuò)誤;檢查表的message列rewriter_rules是否有錯(cuò)誤消息。

通過(guò)調(diào)用flush_rewrite_rules()存儲(chǔ)過(guò)程加載規(guī)則表時(shí) ,如果某些規(guī)則發(fā)生錯(cuò)誤,則該CALL 語(yǔ)句會(huì)產(chǎn)生錯(cuò)誤,并且該插件會(huì)將 Rewriter_reload_error狀態(tài)變量設(shè)置為ON:

MySQL查詢重寫插件的使用

在這種情況下,請(qǐng)檢查rewrite_rules表中是否包含非NULL message列值的行,以查看存在的問(wèn)題。

重寫器插件使用字符集

當(dāng)rewrite_rules表加載到Rewriter插件中時(shí),插件使用character_set_client系統(tǒng)變量的當(dāng)前全局值來(lái)解釋語(yǔ)句 。如果character_set_client隨后更改全局 值,則必須重新加載規(guī)則表。

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

以上就是MySQL查詢重寫插件的使用的詳細(xì)內(nèi)容,更多關(guān)于MySQL查詢重寫插件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品麻豆成人av电影艾秋 | 亚洲综合不卡| 天堂中文在线播放| 国产亚洲欧美日韩在线观看一区二区 | 首页亚洲欧美制服丝腿| 在线综合视频| 久久高清一区| 蜜臀精品一区二区三区在线观看| 丝袜美腿一区二区三区| 视频一区二区三区中文字幕| 91精品99| 一区二区不卡| 国产丝袜一区| 高清一区二区三区av| 麻豆mv在线观看| 天堂日韩电影| 亚洲免费精品| 亚洲人成在线影院| 日韩欧美2区| 国产精品videosex极品| 国产一区二区三区四区五区传媒| 日韩免费福利视频| 夜久久久久久| 青草国产精品| 91欧美日韩| 欧美成人久久| 日韩专区一卡二卡| 国产麻豆精品| 欧美片第1页| 亚洲精品888| 日韩亚洲精品在线观看| 精品视频91| 亚洲小说欧美另类婷婷| 日韩专区在线视频| 国产精品高清一区二区| 亚洲伊人av| 亚洲综合福利| 国产精品13p| 亚洲制服少妇| 国产精品22p| 久久国产电影| 亚洲免费毛片| 久久久久久网| 亚洲精品成人一区| 国产一区二区三区91| 国产高清一区| 久久国产精品色av免费看| 中文字幕色婷婷在线视频| 欧美午夜不卡影院在线观看完整版免费| 日本伊人午夜精品| 日韩大片在线观看| 日本伊人午夜精品| 久久蜜桃精品| 久久国产精品色av免费看| 99久久亚洲精品| 日韩欧美中文字幕一区二区三区| 精品72久久久久中文字幕| 亚洲永久字幕| 日韩成人免费| 日韩精品视频在线看| 日韩精品麻豆| 欧美另类中文字幕| 91成人超碰| 国产精品99一区二区三| 免费观看在线色综合| 成年男女免费视频网站不卡| 亚洲精品日本| 久久亚洲专区| 欧美激情日韩| 免费精品视频在线| 日韩久久一区二区三区| 日韩激情视频网站| 免费av一区| 精品美女在线视频| 日本在线不卡视频一二三区| 亚洲婷婷在线| 国产中文在线播放| 国产免费av国片精品草莓男男| 亚洲少妇一区| 欧美aa一级| 精品一区二区三区的国产在线观看| 三级一区在线视频先锋| 99久久久久国产精品| 国产一区二区三区日韩精品 | 国产一区二区精品福利地址| 免费在线观看成人| 色天使综合视频| 国产精品观看| 日韩精品成人在线观看| 亚洲男女自偷自拍| 欧美黄色网页| 91嫩草亚洲精品| 久久精品九色| 国产精品一区高清| 蜜臀久久99精品久久久久久9| 免费av一区二区三区四区| 日韩在线中文| 成人亚洲一区| 国产日产一区| 天堂俺去俺来也www久久婷婷| 亚洲精品网址| 亚洲伦乱视频| 久久91导航| 中文在线а√天堂| 久久一区国产| 久久99精品久久久野外观看| 天堂va欧美ⅴa亚洲va一国产| 亚洲综合日韩| 在线亚洲一区| 六月婷婷一区| 日韩午夜一区| 午夜精品婷婷| 欧美成人综合| 日韩精品一区二区三区免费观影| 成人国产精品| 精品美女视频| 成人污污视频| 高潮一区二区| 精品捆绑调教一区二区三区| 婷婷激情一区| 欧美中文一区二区| 久久国产精品成人免费观看的软件| 日本а中文在线天堂| 成人av三级| 日韩精品欧美| 婷婷亚洲综合| 一区在线免费观看| 国产午夜精品一区二区三区欧美| 欧美午夜精彩| 日韩视频一区二区三区在线播放免费观看| 亚洲a一区二区三区| 91精品在线观看国产| 久久理论电影| 亚洲欧美日韩国产综合精品二区| 日韩午夜在线| 一区二区精彩视频| 日韩激情精品| 免费在线欧美黄色| 97精品国产福利一区二区三区| 黄色aa久久| 欧美日韩在线观看视频小说| 夜夜嗨网站十八久久| 亚洲aa在线| 日韩和欧美的一区| 日韩精品欧美精品| 麻豆精品av| 久久91导航| 另类激情亚洲| 国产三级精品三级在线观看国产| 国产精品丝袜在线播放| 精品国产三区在线| 91精品国产调教在线观看| 美女国产精品| 欧美日本久久| 国产精品蜜芽在线观看| 亚洲福利一区| 一区二区高清| 欧美国产不卡| 日韩综合精品| 老司机精品久久| 欧美在线看片| 黑人精品一区| 天堂av在线一区| 美女视频黄久久| 欧美va天堂在线| 欧美综合社区国产| 成人片免费看| 一区二区三区午夜视频| 国产精品极品| 欧美日韩激情在线一区二区三区| 亚洲精品无播放器在线播放| 欧美成a人片免费观看久久五月天| 日韩影院二区| 亚洲三级精品| 国产亚洲精品精品国产亚洲综合| 国产精品二区不卡| 国产亚洲精品v| 久久av影视| 一区在线视频观看| 国产精品第十页| 国产精品av一区二区| 中文字幕av一区二区三区人| 麻豆精品蜜桃视频网站| 久久久久国产精品一区二区| 午夜久久av| 另类专区亚洲| 亚洲精品大全| 久久九九国产| 日韩va亚洲va欧美va久久| 成人av三级| 欧美一级网址| 亚洲夜间福利| 卡一精品卡二卡三网站乱码| 亚洲欧洲一区二区天堂久久| 久久xxx视频| 男人的天堂久久精品| 黄色在线网站噜噜噜| 日本aⅴ亚洲精品中文乱码| 女人av一区| 国产成人免费精品|