Mysql優化筆記

sql優化調整:

explain select ...: 執行計劃
執行結果分析:
select_type: 查詢類型
	SIMPLE:不包含子查詢
	PRIMARY:複雜sql最外層的類型
type:遍歷類型
	ALL:遍歷全表匹配行
	index: 只遍歷索引樹
	range:索引範圍掃描
key: 是否實際使用索引:
	NULL,則沒有使用索引

是消耗IO多,仍是CPU計算多?

set profiling = 1; 開始sql語句分析
show profiles; 查看執行sql時間
show profile for query 1; 查看第一個sql執行的各個耗時詳情
show profile cpu for query 1; 查看第一個sql執行的cpu耗時詳情
show profile all for query 1; 查看第一個sql執行的耗時詳情
SHOW profile CPU,BLOCK IO FOR query 2;   通常查詢cpu和io詳情
	type: 
	   ALL                --顯示全部的開銷信息 
	 | BLOCK IO          --顯示塊IO相關開銷 
	 | CONTEXT SWITCHES  --上下文切換相關開銷 
	 | CPU                --顯示CPU相關開銷信息 
	 | IPC                --顯示發送和接收相關開銷信息 
	 | MEMORY            --顯示內存相關開銷信息 
	 | PAGE FAULTS        --顯示頁面錯誤相關開銷信息 
	 | SOURCE            --顯示和Source_function,Source_file,Source_line相關的開銷信息 
	 | SWAPS              --顯示交換次數相關開銷的信息
	
	+----------------------+----------+----------+------------+
	starting:開始
	checking permissions:檢查權限
	Opening tables:打開表
	init : 初始化
	System lock :系統鎖
	optimizing : 優化    
	statistics : 統計  *
	preparing :準備    
	executing :執行    *
	Sending data :發送數據  *
	Sorting result :排序  *
	end :結束
	query end :查詢 結束
	closing tables : 關閉表 /去除TMP 表
	freeing items : 釋放物品
	cleaning up :清理
	+----------------------+----------+----------+------------+
	
show variables like "%version%" 查看數據庫版本信息
show variables like "%profil%"; 查看sql分析開發是否開啓
set profiling = 0; 測試完成須要關閉

通常簡易的流程:
(1)開啓profile分析
(2)執行sql
(3)查看sql分析結果
(4)SHOW profile CPU,BLOCK IO io FOR query 1; //查看指定sql的CPU、IO消耗
(5)關閉profile分析
參考:https://segmentfault.com/a/1190000016351095

查詢數據量和索引量
select 
table_schema as '數據庫',
table_name as '表名',
table_rows as '記錄數',
truncate(data_length/1024/1024, 2) as '數據容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
order by data_length desc, index_length desc;

查看當前線程處理狀況:
	show processlist 或 show full processlist
殺死某個進程:
	kill 183665
查看未睡眠的進程:
	select id, db, user, host, command, time, state, info
		from information_schema.processlist
		where command != 'Sleep'
		order by time desc

參考: https://blog.csdn.net/ty_hf/article/details/54895026	
相關文章
相關標籤/搜索