成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

使用查詢重寫臨時性屏蔽mysql高耗sql

IT那活兒 / 1156人閱讀
使用查詢重寫臨時性屏蔽mysql高耗sql

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

前 言

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

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

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

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

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

使用情況總結(jié)

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


本文作者:胡 杰(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

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

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

相關(guān)文章

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

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

    Hujiawei 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<