mysql內診 筆記 mysql優化前的診斷

2021-10-17 22:20:41 字數 1104 閱讀 7179

不能盲目的做優化,要先找準問題所在,是cpu,記憶體,io?還是峰值,語句?

一、mysql優化套路

二、相關命令

觀察伺服器狀態

mysql> show status; 或 mysqladmin exts;

觀察連線的工作狀態

mysql> show processlist;

狀態說明:

converting hrap to myisam 把查詢結果放在磁碟(取得資料太多)

create tmp table 建立臨時表(索引需要優化)

copying to tmp table to disk 把記憶體臨時表複製到磁碟(索引需要優化,索引字段)

locked 被其他查詢鎖住(事務)

logging slow query 記錄慢查詢

觀察具體語句執行

準備:檢查是否開啟profiling

show variables like 'profiling';

開啟profiling

set profiling=on;

show profiles; //顯示執行語句的執行資訊(含語句query_id)

show profile for query 1; //獲取 query_id 為1的語句的執行資訊

explain (sql語句) \g; //解析sql執行計畫

三、慢查詢日誌

mysql> show variables like 'show_query%'; //可以看到是否開啟,和日誌路徑

mysql> show variables like '%long_query%'; //慢查詢臨界值,超過該值則記入慢查詢

//開啟

mysql> set global slow_query_log=1;

四、awk指令碼 簡便的文字處理工具

mysqladmin -uroot ext|awk 'queries//threads_connected//threads_running/end'

五、sysbench 測試cpu效能

待續……

mysql 調優 Mysql調優

表設計 1 禁止使用外來鍵 2 多表中的相同列,必須保證列定義一致 3 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表 4 表必須包含gmt create和gmt modified欄位,即表必須包含記錄建立時間和修改時間的字段 5 單錶一到兩年內資料量超過500w或資料...

mysql資料庫健康診斷 MySQL 慢的診斷思路

1 問題 如果遇到 mysql 慢的話,你的第一印象是什麼,mysql 資料庫如果效能不行,又該是如何處理的?一些反饋如下 第一反應是再試一次 第二個反應是優化一下 sql 第三個反應是調大 buffer pool,然後開始換硬體了,換一下 ssd 分析一下這些現象背後隱藏的意義 如果再試一次能夠成...

MySQL學習筆記 select語句效能優化建議

關於sql中select效能優化有以下建議,僅當筆記記錄。1.檢查索引 where join部分欄位都該加上索引 2.限制工作資料集的大小 利用where字句過濾 3.只選擇需要的字段 減少io開銷 4.移除不必要的表 5.移除外部連線查詢 outer joins 更新null值佔位符 6.刪除jo...