下文內(nèi)容主要給大家?guī)?lái)MySQL管理出現(xiàn)長(zhǎng)時(shí)間執(zhí)行原因解析,這里所講到的知識(shí),與書(shū)籍略有不同,都是創(chuàng)新互聯(lián)專業(yè)技術(shù)人員在與用戶接觸過(guò)程中,總結(jié)出來(lái)的,具有一定的經(jīng)驗(yàn)分享價(jià)值,希望給廣大讀者帶來(lái)幫助。
1. 出現(xiàn)長(zhǎng)時(shí)間執(zhí)行的查詢的原因
由于SQL執(zhí)行效率差而導(dǎo)致的長(zhǎng)時(shí)間查詢:
由于被SQL注入而導(dǎo)致的長(zhǎng)時(shí)間查詢:
由于DDL語(yǔ)句引起表元數(shù)據(jù)鎖等待:
2. 長(zhǎng)時(shí)間執(zhí)行的查詢帶來(lái)的問(wèn)題
通常來(lái)說(shuō),除非是BI/報(bào)表類查詢,否則長(zhǎng)時(shí)間執(zhí)行的查詢對(duì)于應(yīng)用缺乏意義。
消耗系統(tǒng)資源,比如大量長(zhǎng)時(shí)間查詢可能會(huì)引起 CPU、IOPS 和/或 連接數(shù) 使用率過(guò)高等問(wèn)題。
帶來(lái)系統(tǒng)不穩(wěn)定的隱患(比如 InnoDB 引擎表上的長(zhǎng)時(shí)間查詢可能會(huì)導(dǎo)致 ibdata1 系統(tǒng)文件尺寸的增加)
3. 如何避免長(zhǎng)時(shí)間執(zhí)行的查詢
應(yīng)用方面應(yīng)注意增加防止 SQL 注入的保護(hù)。
在新功能模塊上線前,進(jìn)行壓力測(cè)試,避免出現(xiàn)執(zhí)行效率很差的 SQL 大量執(zhí)行的情況。
盡量在業(yè)務(wù)低峰期進(jìn)行索引創(chuàng)建刪除、表結(jié)構(gòu)修改、表維護(hù)和表刪除操作。
4. 如何處理長(zhǎng)時(shí)間執(zhí)行的查詢
a、通過(guò)命令 show processlist; 查看當(dāng)前執(zhí)行會(huì)話,Kill會(huì)話長(zhǎng)時(shí)間查詢。
b、創(chuàng)建事件自動(dòng)清理長(zhǎng)時(shí)間執(zhí)行的查詢
create event my_long_running_query_monitor on schedule every 5 minute starts '2018-08-08 11:00:00' on completion preserve enable do begin declare v_sql varchar(500); declare no_more_long_running_query integer default 0; declare c_tid cursor for select concat ('kill ',id,';') from information_schema.processlist where time >= 3600 and user = substring(current_user(),1,instr(current_user(),'@')-1) and command not in ('sleep') and state not like ('waiting for table%lock'); declare continue handler for not found set no_more_long_running_query=1; open c_tid; repeat fetch c_tid into v_sql; set @v_sql=v_sql; prepare stmt from @v_sql; execute stmt; deallocate prepare stmt; until no_more_long_running_query end repeat; close c_tid; end;對(duì)于以上關(guān)于MySQL管理出現(xiàn)長(zhǎng)時(shí)間執(zhí)行原因解析,如果大家還有更多需要了解的可以持續(xù)關(guān)注我們創(chuàng)新互聯(lián)的行業(yè)推新,如需獲取專業(yè)解答,可在官網(wǎng)聯(lián)系售前售后的,希望該文章可給大家?guī)?lái)一定的知識(shí)更新。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。