不能盲目的做優化,要先找準問題所在,是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...