SHOW STATUS語句檢視MySQL資料庫的性能參數
1.SHOW STATUS like 'Slow_queries' //慢查詢的次數
檢視日志
1.配置
centos下 my.cnf
log-slow-queries = /tmp/mysql-slow.log
long_query_time = 2
windows下 my.ini:
log_slow_queries
long_query_time = 2 //查詢SQL語句超過兩秒的就記錄 通常2秒就夠了,預設是10秒
注意:
在許多站點中,一個SQL語句超過1秒的執行時間都算慢的了
儲存退出,重新開機MySQL
2.分析
[[email protected] tmp]# tail -f /tmp/mysql_slow.log
Time: 120815 23:22:11
[email protected]: root[root] @ localhost []
Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774
SET timestamp=1294388531;
select count(*) from blog;
Time:執行時間
[email protected]:執行使用者
Query_time SQL執行的時間,越長則越慢
Lock_time 在MySQL伺服器階段(不是在存儲引擎階段)等待表鎖時間
Rows_sent 查詢傳回的行數
Rows_examined 查詢檢查的行數
2.SHOW STATUS like 'Com_(CRUD)'
SHOW (GLOBAL) STATUS like 'Com_select' //檢視總共執行select的次數
SHOW (GLOBAL) STATUS like 'Com_insert'
SHOW (GLOBAL) STATUS like 'Com_delete';
3.SHOW STATUS like 'uptime'; //查詢目前MySQL本次啟動後的運作統計時間
4.SHOW STATUS like 'threads%';
threads_cached //檢視線程緩存内的線程的數量
threads_connected //檢視目前打開的連接配接的數量
threads_running //檢視激活的(非睡眠狀态)線程數。
5.show status like 'Innodb_buffer_pool_%'; //檢視相關緩存資訊
Innodb_buffer_pool_read_requests:read請求的次數
Innodb_buffer_pool_reads:從實體磁盤中讀取資料的請求次數
innodb buffer的read命中率 = (Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100% //命中率不會低于99%
低于這個值的話就要考慮加大innodb buffer pool
6.show variables like '%innodb_buffer_pool_size%' //指令檢視目前緩存的大小
預設是8M(8388608 ),一般來講這個值肯定是不夠的
修改/etc/my.cnf檔案,并添加字段innodb_buffer_pool_size = 3G,然後重新開機mysql 服務