国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

使用查詢重寫(xiě)臨時(shí)性屏蔽mysql高耗sql

IT那活兒 / 1123人閱讀
使用查詢重寫(xiě)臨時(shí)性屏蔽mysql高耗sql

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!

前 言

在我們mysql的日常運(yùn)維過(guò)程中,時(shí)常會(huì)碰到突發(fā)性的高耗sql,比如業(yè)務(wù)上線變更、營(yíng)銷(xiāo)活動(dòng)等等。針對(duì)這類(lèi)sql無(wú)法使用索引優(yōu)化時(shí),為了避免持續(xù)性的高消耗引起其他應(yīng)用模塊的連鎖故障,往往需要臨時(shí)性的屏蔽該類(lèi)sql降低系統(tǒng)負(fù)載,今天我們就來(lái)研究一下mysql中如何使用查詢重寫(xiě)來(lái)達(dá)到此目的。

首先查詢重寫(xiě)功能在官方文檔的5.6章節(jié)<5.6.4.3 Rewriter Query Rewrite Plugin Reference>,詳細(xì)信息可以參數(shù)文檔。其主要思想為將用戶輸入的sql語(yǔ)句轉(zhuǎn)換為dba指定的sql語(yǔ)句,以達(dá)到dba的預(yù)期行為。本文將模擬一個(gè)案例進(jìn)行闡述。

案例模擬復(fù)現(xiàn)

1. 啟動(dòng)重寫(xiě)插件
直接調(diào)用share目錄下的install_rewriter.sql腳本即可安裝,show rewriter_enabled確認(rèn)狀態(tài)為on,注意可在線啟動(dòng)插件無(wú)需重啟。
2. 模擬并發(fā)sql產(chǎn)生異常消耗
圖中可以看到sql屬于分析類(lèi),條件掃描范圍較大,無(wú)法通過(guò)在謂詞條件直接建立索引進(jìn)行優(yōu)化。應(yīng)用模塊無(wú)法快速定位解決時(shí),dba便可以使用重寫(xiě)來(lái)達(dá)到屏蔽sql行為。
3. 重寫(xiě)sql,屏蔽異常開(kāi)銷(xiāo)
圖中我們第一次執(zhí)行,返回是按city分組的3行結(jié)果,使用select 1替換原sql并寫(xiě)入rewrite_rules規(guī)則,注意謂詞條件值可以使用?代替,相當(dāng)于綁定變量. Flush規(guī)則后,再次執(zhí)行sql,其warning已提示該sql已被重寫(xiě)。

由于結(jié)果是dba人為指定的常量值,sql未進(jìn)入innodb引擎直接在server層返回,效率直線上升,從而降低異常開(kāi)銷(xiāo),提升mysql運(yùn)行穩(wěn)定性。

使用情況總結(jié)

上文中我們使用查詢重寫(xiě)屏蔽了sql的異常開(kāi)銷(xiāo),需要注意重寫(xiě)規(guī)則一定要經(jīng)過(guò)變更審核
實(shí)際在日常工作中還有大量的情況需要使用到查詢重寫(xiě),比如innodb優(yōu)化器缺陷需要在sql明文中指定hint干預(yù)執(zhí)行計(jì)劃。當(dāng)然這種情況也可以在應(yīng)用程序sql文本中進(jìn)行改造,這里僅是提供一個(gè)在數(shù)據(jù)庫(kù)層處理的思路。
本文就到此為止。


本文作者:胡 杰(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/129184.html

相關(guān)文章

  • 自制小工具大大加速MySQL SQL語(yǔ)句優(yōu)化(附源碼)

    摘要:如果語(yǔ)句中使用了子查詢集合操作臨時(shí)表等情況,會(huì)給列帶來(lái)很大的復(fù)雜性。會(huì)遞歸執(zhí)行這些子查詢,把結(jié)果放在臨時(shí)表里。查詢優(yōu)化器從中所選擇使用的索引。該字段顯示了查詢優(yōu)化器通過(guò)系統(tǒng)收集的統(tǒng)計(jì)信息估算出來(lái)的結(jié)果集記錄條數(shù)。 引言 優(yōu)化SQL,是DBA常見(jiàn)的工作之一。如何高效、快速地優(yōu)化一條語(yǔ)句,是每個(gè)DBA經(jīng)常要面對(duì)的一個(gè)問(wèn)題。在日常的優(yōu)化工作中,我發(fā)現(xiàn)有很多操作是在優(yōu)化過(guò)程中必不可少的步驟。然...

    Hujiawei 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<