死鎖概念:
兩個或兩個以上的程序在執行過程中,因爭奪資源而造成的一種互相等待的現象
1.監控死鎖(innotop):
(1) 啟用 innodb_status_file
在/etc/my.cnf新增如下:
[mysqld]
innodb_status_file =1
於/var/lib/mysql/下檢視.err日誌
(2)啟用 innodb_monitor
建立監視表:
mysql>use mysql;
mysql> create table innodb_monitor ( id int ) engine = innodb;
mysql> show innodb status\g;
例:乙個表test,結構如下:
id:主鍵;
state:狀態;
time:時間;
索引:index(state,time)
任務1: update test set state=1064,time=now() where state=1061 and time < date_sub(now(), interval 30 minute);
鎖分析:先鎖定非主鍵索引index,再鎖定主鍵索引id
任務2: update test set state=1067,time=now() where id in (9921180);
鎖分析:先鎖定主鍵索引id,再鎖定非主鍵索引index
解決方法:保證鎖順序一致
select id from tab_test where state=1061
andtime
< date_sub(now(), interval
30minute);
update tab_test state=1064,time=now() where id in(......);
2.監控慢查詢操作:
在/etc/my.cnf新增如下:
[mysqld]
slow_query_log=1
slow_query_log_file=/tmp/mysqld_slow.log
long-query-time=1(單位:秒)
log-queries-not-using-indexes(未使用索引)
MySQL調優之效能監控
參考資料 show profile type type for query n limit row count offset offset type type 引數解釋 set profiling 1 此工具預設是禁用的,可以通過伺服器變數在會話級別動態的修改。當設定完成之後,在伺服器上執行的所有語...
mysql調優(1) 效能監控
效能監控 old version set profiling 1 show profiles show profile show profile query 2 不推薦 new version use performance chema performance schema預設是開啟狀態 對應的狀態...
mysql效能調優
1.對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引。2.應盡量避免在where子句中對字段進行null判斷,否則會導致引擎放棄使用索引而進行全表掃瞄。3.應盡量避免在where子句中使用 或 操作符,否則會導致引擎放棄使用索引而進行全表掃瞄。4...