1. 程式人生 > >mysql學習筆記之--引數設定(效能調優)

mysql學習筆記之--引數設定(效能調優)

MySQL效能調優之引數設定
命令
1.show processlist;  //檢視mysql的連線資訊

2.select SQL_CACHE * from T where id= 10; //查詢mysql快取

3.select * from information_schema.innidb_trx where TIME_TO_SEC (timediff(now(),trx_started)) > 60; //檢視持續時間超過60S的長事務
    原理就是監控information_schema.Innodb_trx表,

4.show variables like 'transaction_isolation';  //檢視資料隔離級別

5.Flush tables with read lock (FTWRL):給整個資料庫例項加全域性讀鎖,使整個資料處於只讀狀態,其它執行緒的更新(資料更新,建表、修改表、更新類書屋提交)都會被阻塞。

 

引數
1.query_cache_type:設定查詢快取型別  DEMAND:不用是用快取

2.row_examined: 表示這個語句執行過程中掃描了多少行

3.innodb_flush_log_at_trx_commit:建議引數設定成1,表示每次事務的redo log都直接持久化到磁碟。保證MySQL異常重啟之後資料不丟失。

4.sync_binlog:建議設定成1,表示每次事務提交的時候binlog都持久化到磁碟,保證binlog不丟失

5.set autocommit = 1 //通過顯示語句的方式來啟動事務


6.explain執行計劃
Extra欄位
     --“Using filesort”表示需要用檔案排序,MySQL會給每一個執行緒分配一塊記憶體用於排序,稱之為sort_buffer
     --“Using index”表示用到了覆蓋索引
sort_buffer_size:MySQL為排序開闢的記憶體大小,在記憶體中使用快速排序,在臨時檔案中使用歸併排序。
max_length_for_sort_data:MySQL 中專門用於控制排序的行資料長度的一個引數。
number_of_tem_files:表示臨時檔案的數量
examined_rows:需要參與排序的數量

7.innodb_lock_wait_timeout 設定鎖等待超時時間,用來避免出現死鎖。

8.inindb_deadlock_detect: on 開啟死鎖檢測,