Mysql 效能監控及調優

2021-07-04 07:24:58 字數 1345 閱讀 8486

死鎖概念:

兩個或兩個以上的程序在執行過程中,因爭奪資源而造成的一種互相等待的現象

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...