久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL慢日志查詢實例分析

158次閱讀
沒有評論

共計 1416 個字符,預計需要花費 4 分鐘才能閱讀完成。

本篇內容介紹了“MySQL 慢日志查詢實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、慢查詢日志概念

對于 SQL 和索引的優化問題,我們會使用 explain 去分析 SQL 語句。但是真正的企業級項目有成千上萬條 SQL,我們不可能從頭開始一條一條 explain 去分析。我們從什么地方可以獲取那些運行時間長,耗性能的 SQL??

我們可以打開慢查詢日志:

根據具體的業務和并發量來預估一個時間上限(20ms、100ms),設置好后開啟業務,壓測后打開慢查詢日志,就會看到超過執行時間的 SQL,然后使用 explain 分析這些耗時的 SQL 語句

步驟如下:

打開慢查詢日志開關 slow_query_log

設置合理的、業務可以接受的慢查詢時間上限

壓測執行各種業務

查看慢查詢日志,找出所有執行耗時的 SQL 語句

用 explain 分析這些耗時的 SQL 語句,從而針對性優化

MySQL 可以設置慢查詢日志,當 SQL 執行的時間超過我們設定的時間,那么這些 SQL 就會被記錄在慢查詢日志當中,然后我們通過查看日志,用 explain 分析這些 SQL 的執行計劃,來判定為什么效率低下,是沒有使用到索引?還是索引本身創建的有問題?或者是索引使用到了,但是由于表的數據量太大,花費的時間就是很長,那么此時我們可以把表分成多個小表等。

慢查詢日志相關的參數如下所示:
(MySQL 定義的很多的全局的開關,都是在全局變量中存儲,可以用 show/set variables 查看或者設置全局變量的值)

慢查詢日志開關默認是關閉的
慢查詢日志的路徑:默認在 /var/lib/mysql/ 下

慢查詢日志記錄了包含所有執行時間超過參數 long_query_time(單位:秒)所設置值的 SQL 語句的日志,在 MySQL 上用命令可以查看,如下:

這個值是可以修改的:

二、慢查詢日志實踐 1. 打開慢查詢日志開關 slow_query_log

在打開慢查詢日志開關的時候,報錯表示 slow_query_log 是一個 global 的變量(也有只影響當前 session 的變量,如:long_query_time、profiling),修改后會影響所有的 session,即影響所有正在訪問當前 MySQL server 的客戶端。

打開慢查詢日志開關成功!

2. 設置合理的、業務可以接受的慢查詢時間上限 long_query_time

查看另一個 session

發現還是默認的 10s,故 long_query_time 只影響當前 session

3. 壓測執行各種業務

已經超過我們設置的 long_query_time=0.1s

4. 查看慢查詢日志

路徑:/var/lib/mysql/

MySQL 慢日志查詢實例分析

5. 用 explain 分析這些耗時的 SQL 語句,從而針對性優化

MySQL 慢日志查詢實例分析
做了整表的搜索,把主鍵索引樹整個掃了一遍。

我們應該給 password 添加索引,然后記得 password 是字符串格式,因為如果涉及類型轉換是用不了索引的

三、show profiles 查看 sql 具體的運行時間

MySQL 一般只顯示小數點后兩位的時間
MySQL 慢日志查詢實例分析
打開 profiling 開關,顯示更詳細的時間

MySQL 慢日志查詢實例分析
沒有報錯,說明 profiling 變量只影響當前 session

MySQL 慢日志查詢實例分析

“MySQL 慢日志查詢實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計1416字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 宜州市| 衡水市| 潞城市| 满城县| 时尚| 灵璧县| 麻江县| 云和县| 金华市| 大方县| 屯留县| 南澳县| 苍南县| 高雄县| 临夏市| 灵宝市| 蓝田县| 东兴市| 甘孜| 临桂县| 于田县| 东辽县| 琼海市| 达州市| 灯塔市| 广昌县| 双牌县| 大竹县| 荔浦县| 遵义县| 深水埗区| 巴东县| 湘乡市| 通江县| 德钦县| 保靖县| 泗阳县| 靖州| 布拖县| 德州市| 平武县|