更新時(shí)間:2023-08-07 來(lái)源:黑馬程序員 瀏覽量:
慢查詢?nèi)罩居涗浟怂袌?zhí)行時(shí)間超過指定參數(shù)(long_query_time,單位:秒,默認(rèn)10秒)的所有SQL語(yǔ)句的日志。MySQL的慢查詢?nèi)罩灸J(rèn)沒有開啟,我們可以查看一下系統(tǒng)變量 slow_query_log。
如果要開啟慢查詢?nèi)罩荆枰贛ySQL的配置文件(/etc/my.cnf)中配置如下信息:
#開啟MySQL慢日志查詢開關(guān) slow_query_log=1 #設(shè)置慢日志的時(shí)間為2秒,SQL語(yǔ)句執(zhí)行時(shí)間超過2秒,就會(huì)視為慢查詢,記錄慢查詢?nèi)罩? long_query_time=2
配置完畢之后,通過以下指令重新啟動(dòng)MySQL服務(wù)器進(jìn)行測(cè)試,查看慢日志文件中記錄的信息,/var/lib/mysql/localhost-slow.log。
systemctlrestartmysqld
然后,再次查看開關(guān)情況,慢查詢?nèi)罩揪鸵呀?jīng)打開了。
測(cè)試:
A. 執(zhí)行如下SQL語(yǔ)句:
select*fromtb_user;--這條SQL執(zhí)行效率比較高,執(zhí)行耗時(shí)0.00sec selectcount(*)fromtb_sku;--由于tb_sku表中,預(yù)先存入了1000w的記錄,count一次,耗時(shí) 13.35sec
B. 檢查慢查詢?nèi)罩荆?/p>
最終我們發(fā)現(xiàn),在慢查詢?nèi)罩局?,只?huì)記錄執(zhí)行時(shí)間超多我們預(yù)設(shè)時(shí)間(2s)的SQL,執(zhí)行較快的SQL是不會(huì)記錄的。
那這樣,通過慢查詢?nèi)罩?,就可以定位出?zhí)行效率比較低的SQL,從而有針對(duì)性的進(jìn)行優(yōu)化。
Python中的注釋有幾種?_Python初級(jí)入門
2023-08-07Hive能像關(guān)系型數(shù)據(jù)庫(kù)那樣建多個(gè)庫(kù)嗎?
2023-08-04NumPy中使用T屬性實(shí)現(xiàn)數(shù)組轉(zhuǎn)置操作
2023-08-04利用Python內(nèi)置pip工具安裝數(shù)據(jù)預(yù)處理庫(kù)
2023-08-04在Python中是如何管理內(nèi)存的?
2023-08-03怎樣繪制概念數(shù)據(jù)模型的E-R圖?【任務(wù)實(shí)現(xiàn)過程】
2023-08-02