mysql較為重要的狀態變數
Innodb_log_waits
因log buffer不足導致等待的次數
相關引數:
Innodb_os_log_pending_fsyncs:redo log的pending fsync()次數
Threads_connected
當前open的執行緒數
相關引數:
Threads_created:建立的執行緒數,值過大可增加thread_cache_size
Threads_running:正在執行的執行緒數
Threads_cached:cached的執行緒數
Connections:試圖登入mysql的連線數,threads_created/connections用以計算cache miss rate
Max_used_connections:自啟動以來最大併發連線數
Created_tmp_disk_tables
建立的on-disk臨時表數量
即便internal temp table初始建於記憶體中,當其大於min(tmp_table_size,max_heap_table_size)時,會自動轉換為MyiSAM表存入磁碟
可將其與created_tmp_tables比較以確認是否有改進的餘地
相關引數:
Created_tmp_files:mysqld建立的臨時檔案數
Created_tmp_tables:執行語句過程中生成的internal臨時表數量
http://space.itpub.net/15480802/viewspace-757553
Handler_read_first
讀取索引第一個entry的次數,如果該指標很高說明系統進行了大量的full index scan,例如select col1 from foo(col1列有索引)
相關引數:
Handler_read_key:透過key值讀取行的次數,說明query很好的利用了索引
Handler_read_last:(5.6新變數)讀取索引最後key的次數,order by desc使用
Handler_read_prev:主要用於order by desc
Handler_read_next:依據key順序讀取下一行,index range scan或者non-unique index的col1 = const操作
Handler_read_rnd:依據fixed pos讀取行的次數
Handler_read_rnd_next:讀取當前下一行,大量全表掃描時此值會比較高
Innodb_buffer_pool_wait_free
說明buffer pool沒有空閒記憶體了,有多種原因,最常見的是Buffer pool太;
Buffer pool採用LRU演算法:
所有buffer塊位於同一列表,其中後3/8為old,每當新讀入一個資料塊時,先從隊尾移除同等塊數然後插入到old子列的頭部,如再次訪問該塊則將其移至new子列的頭部
Innodb_buffer_pool_size: buffer pool大小
Innodb_buffer_pool_instances: 子buffer pool數量,buffer pool至少為1G時才能生效
Innodb_old_blocks_pct: 範圍5 – 95, 預設為37即3/8,指定old子列的比重
Innodb_old_blocks_time: 以ms為單位,新插入old子列的buffer塊必須等待指定時間後才能移入new列,適用於one-time scan頻繁的操作,以避免經常訪問的資料塊被剔出buffer pool
http://space.itpub.net/15480802/viewspace-755582
Key_reads
將MyiSAM索引塊從磁碟讀入key cache的次數,此係物理讀
相關引數:
Key_read_requests:向key cache請求讀次數,key_reads/key_read_requests可以計算cache miss rate
Key_write_requests:向key cache寫請求次數
Key_writes:從key cache向磁碟寫block次數
5.5僅支援一個結構化變數,即key cache,其包含4個部件
Key_buffer_size
Key_cache_block_size:單個塊大小,預設1k
Key_cache_division_limit:warm子列的百分比(預設100),key cache buffer列表的分隔點,用於分隔host和warm子列表
Key_cache_age_threshold:頁在hot子列中的生命週期,值越小則越快的移至warm列表
預設採用LRU演算法,也支援名為中間點插入機制midpoint insertion strategy
索引頁剛讀入key cache時,被放在warm列的尾部,被訪問3次後則移到hot列尾並迴圈移動,如果在hot列頭閒置連續N次都沒訪問到,則會被移到warm列頭,成為被剔出cache的首選;
N= block no* key_cache_age_threshold/100
http://space.itpub.net/15480802/viewspace-755582
Open_tables
開啟表的數量,如果此值很小而open_table_cache過大,則可適當調小後者
相關引數:
Opened_files:透過my_open()開啟過的檔案數
Opened_table_definitions:被cached過的.frm檔案數量
Opend_tables:被開啟過的表數量,如果此值太大有可能table_open_cache過小所致
Open_files:當前open的檔案數(不包括socket/pipe)
Open_table_definition:當前cached的.frm數量
5.6.6新加table_open_cache_hits/table_open_cache_misses
Table_definition_cache:儲存frm檔案,不同於open_table_cache的per-thread,這些檔案可被所有執行緒共享;5.1引入;
與MyISAM不同,InnoDB的open table和open file並無直接聯絡,即開啟frm表時其相應的ibd檔案可能處於關閉狀態;
故InnoDB只會用到table_definiton_cache,不會使用table_open_cache;
其frm檔案儲存於table_definition_cache中,而idb則由innodb_open_files決定(前提是開啟了innodb_file_per_table);
除此之外,innodb還在記憶體中維護一個data dictionary,用於記錄所有訪問過的表,即便表已經關閉了也不釋放,show innodb status會顯示該部分記憶體大小;
如果這兩個引數設定過大,有可能會消耗較多記憶體
Select_full_join
執行表掃描的joins數量(沒有使用索引)
相關引數:
Select_full_range_join:對referenced表使用range的joins數量
Select_range:第一個表使用ranges的join數量,通常即便很高也不會引起效能問題
Select_range_check:沒有使用key的join數量(The number of joins without keys that check for key usage after each row),如果不等於0則需仔細檢查表的索引
Select_scan:第一個表使用full scan的join數量
Slow_queries
Slow query的數量(執行時間超過long_query_time)
Uptime
自系統啟動以來的秒數
Com_xxx
記錄xxx的執行次數,比如com_delete記錄delete執行次數,com_commit事務提交數
TPS=(com_commit + com_rollback)/seconds
QPS=queries/seconds
注:透過query cache完成的select由qcache_hits記錄,而非com_select
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-764968/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 獲取Mysql的狀態、變數MySql變數
- MySQL 變數及效能狀態檢視知識技巧MySql變數
- 用設計模式去掉沒必要的狀態變數 —— 狀態模式設計模式變數
- SAP BSP應用有狀態和無狀態行為差異比較
- C++ 接受狀態變數的lambda表示式C++變數
- 使用動態變數進行動態資料比較變數
- [MySQL5.6]PerformanceSchema學習:命名規範、狀態變數及其他(2)MySqlORM變數
- 資料庫效能大揭秘:玩轉MySQL監控指標狀態變數資料庫MySql指標變數
- MySQL handler相關狀態引數解釋MySql
- ORACLE CRS 狀態 UNKNOWN 變為offlineOracle
- HarmonyOS 實踐之應用狀態變數共享變數
- PostgreSQL狀態變遷SQL
- 狀態變化模式模式
- MySQL 8.0 5.1.6.2 動態系統變數MySql變數
- Mysql重要配置引數的整理MySql
- mysql 鎖狀態的一些狀態資訊記錄MySql
- sql語句中較為重要的查詢邏輯SQL
- 多級稽核狀態的變更
- 靜態變數和非靜態變數變數
- elementui 如果變數為1 顯示 開啟,2顯示關閉。表格怎麼根據狀態碼顯示狀態值UI變數
- 讓 Promise 的狀態變成可控的Promise
- JS變數比較陷阱JS變數
- 滑鼠移到元素上指標變為不可用狀態指標
- Spring如何為靜態變數注入值Spring變數
- 檢測mysql狀態的指令碼MySql指令碼
- MySQL變數的使用MySql變數
- React專題:可變狀態React
- java實現用一個變數表示多個屬性的狀態Java變數
- android狀態列一體化(改變狀態列的背景顏色)Android
- Android 沉浸式狀態列攻略 讓你的狀態列變色吧Android
- 行為和狀態的關係
- MYSQL連線相關引數和狀態值詳解MySql
- 比較重要的例題
- PLSQL Language Referenc-PL/SQL集合和記錄-集合比較-和NULL比較可變陣列和巢狀表變數SQLNull陣列巢狀變數
- 靜態變數變數
- 事件溯源:是來自事件的狀態與作為狀態的事件? - verraes事件
- 全域性變數和靜態變數的區別變數
- 基於函式的索引狀態變化函式索引