資料庫調優教程(一)前言&慢查詢定義
阿新 • • 發佈:2019-02-18
前言
最近幫公司優化資料庫,憑著之前所學,一步一步地將學習知識用於實踐,總算是將速度蹭上去了,一個原本要執行1分多鐘的查詢現在只需要3秒。
現把自己所學所思及所用加以總結,一方面為自己鞏固知識,另一方面也給廣大同學以一點點參考。
本套教程共十三講。
在這系列的教程中,你將會學到
1. 如何一步步地優化資料庫
2. 如何把索引的作用發揮的淋漓盡致
3. 如何解決Mysql在like’%xxx%’模糊查詢的情況下不使用索引
4. 如何設計一張優質的表
5. 如何寫出高質量的sql語句
6. 資料庫優化的其他方法
首先,讓我們從發現慢查詢開始。
一、 發現慢查詢
如何從一個大專案中,迅速的定位執行速度慢的語句,這是本章節將要解決的問題。
1. 慢查詢的定義
怎樣的查詢才算是慢查詢,有沒有一個量化的標準呢?
慢查詢定義
慢查詢是指執行時間超過慢查詢時間的sql語句。
檢視慢查詢時間的方法
show variables like 'long_query_time';
可以顯示當前慢查詢時間。MySql預設慢查詢時間為10秒
可以通過如下語句對慢查詢的定義進行修改
set global long_query_time=1;
(如果你的mysql設定了快取,那麼需要重新進入命令列窗口才會查出變化)
需要注意的是,這個語句特意在變數前加上了global,表明這次的設定是對整個Mysql有效的,而預設情況下變數前的修飾符是session(會話),也就是隻對當前視窗有效。
這一講只是開個頭,下一講,我們會為慢查詢的發生準備資料,即建立一張大表。