程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 簡單談談MySQL優化利器-慢查詢,談談mysql優化利器

簡單談談MySQL優化利器-慢查詢,談談mysql優化利器

編輯:MySQL綜合教程

簡單談談MySQL優化利器-慢查詢,談談mysql優化利器


慢查詢

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

檢查慢查詢是否開啟

通過show variables like 'slow_query_log'這條語句,可以找到慢查詢的狀態(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仍未完成的語句,為執行過慢的語句

優化步驟

觀察日志,鎖定需要優化的目標語句。注意SQL的設置,譬如:SQL_NO_CACHE

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

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

無法優化的語句,當我們通過上述兩種方法,以及更多未被本文提及的優化方法之後,可能還是會面對優化失敗的情況。業務層面不做出修正的話,數據層面的確是無力可使。

結語

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

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved