簡單談談MySQL優化利器 慢查詢

2021-09-07 18:41:50 字數 919 閱讀 4523

慢查詢

首先,無論進行何種優化,開啟慢查詢都算是前置條件。慢查詢機制,將記錄過慢的查詢語句(事件),從而為db維護人員提供優化目標。

檢查慢查詢是否開啟

通過show variables like 'slow_query_log'這條語句,可以找到慢查詢的狀態(on/off)。

開啟慢查詢

在[mysqld]下加入:

[mysqld]

port= 3306

slow-query-log=1 # 慢查詢:確認開啟

slow-query-log-file="d:/xampp/mysql/log/mysql-slow.log" # 慢查詢:日誌檔案及路徑

long_query_time = 5 # 慢查詢:指定超過5s仍未完成的語句,為執行過慢的語句

優化步驟

觀察日誌,鎖定需要優化的目標語句。注意sql的設定,譬如:sql_no_cache

關注複雜語句寫法。複雜語句本身具備高自由度,再加上sql語法的特殊性,導致了不同的寫法的同功能複雜語句,可能具備雲泥之別的效率。

明確應用場景,儘管我們在各種場合都有原則,但實際上,如果能夠明確應用場景,我們能夠針對當前情況,做出本地化的高效優化。

結語

當打出「無法優化」的時候,不禁想到了我所喜愛的遊戲設計行業。

如果你了解一二,就會發現,遊戲設計中,其實有相當多的優秀設計,但大多數都困窘於當時當地的技術水平,而無法實現多彩紛呈的遊戲設計。

也還記得去年做ui的朋友跟我吐槽:我就怕我設計的出來,很炫酷或者很人文,可前端根本實現不了那種設計。

記一次 MySQL 的慢查優化

最近遇見乙個 mysql 的慢查問題,於是排查了下,這裡把相關的過程做個總結。我首先檢視了 mysql 的慢查詢日誌,發現有這樣一條 query 耗時非常長 大概在 1 秒多 而且掃瞄的行數很大 10 多萬條資料,差不多是全表了 select from tgdemand demand t1 wher...

效能優化 MySQL慢查日誌的儲存格式

如下圖所示 說明 1 time 180526 1 06 54 查詢的執行時間 2 user host root root localhost id 4 執行sql的主機資訊 3 query time 0.000401 lock time 0.000105 rows sent 2 rows exami...

匹配MySQL慢日誌的正則 mysql慢查詢日誌

新增慢查詢日誌 第一種 修改my.cnf新增 薦 log slow queries var log slowquery.log long query time 1 重啟mysql 第二種 命令下新增 set global long query time 1 注 long query time的值 5...