重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
1.慢SQL查詢
開啟慢sql查詢機制
set global slow_query_log=on
set global long_query_time=2;
set global log_queries_not_using_indexes=on
slow_query_log:慢查詢log日志記錄 on(開啟)/off(關閉);
long_query_time:SQL語句執行時間超過2就被認為是慢查詢語句;
log_queries_not_using_indexes:查詢未使用索引是否開啟記錄慢查詢日志 on(開啟)/off(關閉);
查詢慢sql開啟的狀態 可以查看到慢sql日志已開啟 以及慢sql日志文件位置
show variables like '%slow%';
查看慢sql個數
show global status like '%slow%';
優化策略:
參考慢sql個數,根據慢sql日志查看執行較慢的sql,針對慢sql進行sql優化。
2.mysql連接數設置不合理
開啟mysql執行日志
use mysql;
show variables LIKE '%general_log%' 查看mysql日志開啟狀態;
set global general_log=ON; 開啟mysql日志記錄 on(開啟)/off(關閉);
(1)如果mysql日志中出現 Too many connections的情況,則更改大連接數。
查看大連接數
show variables like '%max_connections%';
查看當前的連接數
show status like 'Threads%';
如果當前運行的線程數大于大線程數,則更改mysql大連接數
set global max_connections=xxxx 進行設置
3.mysql線程死鎖
輸入SHOW ENGINE INNODB STATUS\G;
出現lock關鍵字則表示存在線程死鎖
查看最近死鎖的日志show engine innodb status;
查看mysql錯誤日志:show variables like 'log_error';
數據庫日志中搜索block
,能搜到block的話就是存在數據庫死鎖,查看對應的sql,優化造成死鎖的sql。
4.mysql進程使用優化
查看正在創建的進程數
show global status like 'Thread%';
查看進程緩存數
show variables like 'thread_cache_size';
優化建議:
如果正在創建的進程數>緩存進程數,并且正在創建的進程數較大,建議增加緩存進程數。
set global thread_cache_size=16 增加緩存進程數
5.mysql線程使用優化
輸入show processlis;t
,查看線程使用情況。
Converting HEAP to MyISAM 查詢結果太大時,把結果放到磁盤(嚴重)
Create tmp table 創建臨時表(嚴重)
Copying to tmp table on disk 把內存臨時表復制到磁盤(嚴重)
locked 被其他查詢鎖住(嚴重)
6.查看具體sql的執行效率
set profiling=1; 會話級別的profile
show variables like '%profil%'; 查看profiling系統變量
查詢具體sql語句執行的時間
show profiles;
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧