id: |
規(guī)則ID。此列是表主鍵??梢允褂迷揑D唯一標(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: |
指示如何重寫(xiě)與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ú)法重寫(xiě)的原因。 |
normalized_pattern |
此列用于調(diào)試和診斷。如果在將規(guī)則表加載到內(nèi)存中時(shí)該列存在,則插件會(huì)使用模式的規(guī)范化形式對(duì)其進(jìn)行更新。如果您嘗試確定某些語(yǔ)句無(wú)法重寫(xiě)的原因,則此列可能很有用。 |
重寫(xiě)器查詢重寫(xiě)插件過(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)容更新其緩存:
使用重寫(xiě)插件中定義的語(yǔ)句模式查詢相應(yīng)記錄:
SELECT DBA_no, name from DBA_inf where DBA_no =8;
通過(guò)使用explain語(yǔ)句查看,當(dāng)前SQL已經(jīng)使用了索引
重寫(xiě)插件操作信息
該Rewriter插件通過(guò)幾個(gè)狀態(tài)變量提供有關(guān)其操作的信息:
有關(guān)這些變量的說(shuō)明:
通過(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:
在這種情況下,請(qǐng)檢查rewrite_rules表中是否包含非NULL message列值的行,以查看存在的問(wèn)題。
重寫(xiě)器插件使用字符集
當(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查詢重寫(xiě)插件的使用的詳細(xì)內(nèi)容,更多關(guān)于MySQL查詢重寫(xiě)插件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
標(biāo)簽:合肥 呼和浩特 牡丹江 惠州 天津 阿里 沈陽(yáng) 公主嶺
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL查詢重寫(xiě)插件的使用》,本文關(guān)鍵詞 MySQL,查詢,重寫(xiě),插件,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。