MySQL優化命令彙總

2021-09-21 13:16:30 字數 2278 閱讀 7234

1、檢視當前伺服器配置的最多連線數

-- 檢視當前伺服器配置的最多連線數

show variables like 'max_connections'; 

#設定方法:

set global max_connections=10000;

2、檢視當前已使用最大連線數

show global status like '%max_used_connections%';
3、檢視最大連線數,應該是與上面查詢到的連線數相同,才會出現too many connections的情況

show global variables like 'wait_timeout';

#設定方法:

set global wait_timeout=300; 

show global variables like 'interactive_timeout';

#設定方法:

set global interactive_timeout=500;

4、檢視連線數,可以發現有很多連線處於sleep狀態,這些其實是暫時沒有用的,所以可以kill掉。檢視程序狀態,通過此命令可以檢視哪些sql在等待鎖

show full processlist;
5、kill之前沒用的sleep連線

kill id;
6、檢視正在被鎖定的的表

show status like 'table%';

-- table_locks_immediate  指的是能夠立即獲得表級鎖的次數

-- table_locks_waited  指的是不能立即獲取表級鎖而需要等待的次數

-- table_locks_waited/table_locks_immediate=0.3%  如果這個比值比較大的話,說明表鎖造成的阻塞比較嚴重 

show open tables where in_use > 0;

-- 檢視哪些表在使用中,in_use列表示有多少執行緒正在使用某張表,name_locked表示表名是否被鎖,這一般發生在drop或rename命令操作這張表時。

show status like '%lock%';

-- 如當table_locks_waited與table_locks_immediate的比值較大,則說明我們的表鎖造成的阻塞比較嚴重,可能需要調整query語句,或者更改儲存引擎,亦或者需要調整業務邏輯。

-- innodb_row_lock_waits較大,則說明innodb的行鎖也比較嚴重,原因可能是query語句所利用的索引不夠合理(innodb行鎖是基於索引來鎖定的),造成間隙鎖過大。

7、qps(每秒query量) qps = questions(or queries) / seconds 

show  global  status like 'question%';
8、tps(每秒事務量) 

show global status like 'com_commit'; 

show global status like 'com_rollback';

9、檢視當前伺服器最大開啟檔案數

show variables like 'open%';

-- open_files系統當前開啟的檔案數

-- opened_files系統開啟過的檔案總數

show global status like 'open%file%';

10、修復mysql服務最大開啟檔案數

#檢視linux系統最大開啟檔案數限制:

ulimit -n

65535

#設定65535最大開啟檔案數,配置檔案/etc/security/limit.conf,追加:

* soft nofile 65535

* hard nofile 65535

#mysql服務配置檔案/lib/systemd/system/mysqld.service,最後追加:

limitnofile=65535

limitmemlock=65535

#然後執行以下命令重啟mysql

systemctl daemon-reload

systemctl restart mysqld.service

mysql優化問題彙總

sql優化 分割槽 分表 垂直分庫 水平分庫 讀寫分離 進入到mysql命令列。mysql u root p show plugins 檢視是否支援分割槽,最後會出現乙個 partition 這個行 表示支援 也可以 show variables like partition show table ...

MySQL 命令彙總

以下收錄有關mysql各種常用命令,不定期更新。1.開啟關閉mysql服務 在windows下開啟mysql服務 通過cmd進入命令列介面,輸入net start 你的mysql服務名,如 net start mysql 或 net start mysql57 其命令格式為 net start 服務...

mysql 查詢優化案例彙總

一 簡介 此文章為經歷過的sql案例集合和相關思路 二 案例1 現象 測試環境出現select語句,join2張表多次join,explain結果如下 出現 using where,using join buffer block nested loop 思路分析 bnl 5.6優化,首先就看連線字段...