簡單談談MySQL優(yōu)化利器-慢查詢
慢查詢
首先,無論進行何種優(yōu)化,開啟慢查詢都算是前置條件。慢查詢機制,將記錄過慢的查詢語句(事件),從而為DB維護人員提供優(yōu)化目標。
檢查慢查詢是否開啟
通過show variables like 'slow_query_log'
這條語句,可以找到慢查詢的狀態(tài)(On/Off)。
開啟慢查詢
本文使用的MySQL版本:MariaDB - 10.1.19,請注意,不同版本的MySQL存在差異。
在[mysqld]下加入:
[mysqld] port= 3306 slow-query-log=1 # 慢查詢:確認開啟 slow-query-log-file="D:/xampp/mysql/log/mysql-slow.log" # 慢查詢:日志文件及路徑 long_query_time = 5 # 慢查詢:指定超過5s仍未完成的語句,為執(zhí)行過慢的語句
優(yōu)化步驟
觀察日志,鎖定需要優(yōu)化的目標語句。注意SQL的設置,譬如:SQL_NO_CACHE
。
關注復雜語句寫法。復雜語句本身具備高自由度,再加上SQL語法的特殊性,導致了不同的寫法的同功能復雜語句,可能具備云泥之別的效率。
明確應用場景,盡管我們在各種場合都有原則,但實際上,如果能夠明確應用場景,我們能夠針對當前情況,做出本地化的高效優(yōu)化。
無法優(yōu)化的語句,當我們通過上述兩種方法,以及更多未被本文提及的優(yōu)化方法之后,可能還是會面對優(yōu)化失敗的情況。業(yè)務層面不做出修正的話,數(shù)據層面的確是無力可使。
結語
當打出“無法優(yōu)化”的時候,不禁想到了我所喜愛的游戲設計行業(yè)。
如果你了解一二,就會發(fā)現(xiàn),游戲設計中,其實有相當多的優(yōu)秀設計,但大多數(shù)都困窘于當時當?shù)氐募夹g水平,而無法實現(xiàn)多彩紛呈的游戲設計。
也還記得去年做UI的朋友跟我吐槽:我就怕我設計的出來,很炫酷或者很人文,可前端根本實現(xiàn)不了那種設計。
相關文章
mysql使用教程之分區(qū)表的使用方法(刪除分區(qū)表)
mysql分區(qū)表使用方法,新增分區(qū)、刪除分區(qū)、分區(qū)的合并、分區(qū)的拆分等使用方法2013-12-12Linux7.6二進制安裝Mysql8.0.27詳細操作步驟
大家好,本篇文章主要講的是Linux7.6二進制安裝Mysql8.0.27詳細操作步驟,感興趣的同學快來看一看吧,希望對你起到幫助2021-11-11MySQL Shell import_table數(shù)據導入的實現(xiàn)
這篇文章主要介紹了MySQL Shell import_table數(shù)據導入的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08