服務器維護許多提供操作相關信息的狀態變量。你可以通過SHOW STATUS語句查看這些變量和它們的值
用FLUSH STATUS語句可以將許多狀態變量重設為0。
狀態變量有以下含義。沒有指示版本的變量在MySQL 5.1之前已經出現。關於它們的使用歷史,參見MySQL 5.0參考手冊。
・ Aborted_clIEnts ・ Aborted_connects
試圖連接到MySQL服務器而失敗的連接數。參見A.2.10節,“通信錯誤和失效連接”。
・ Binlog_cache_disk_use
使用臨時二進制日志緩存但超過binlog_cache_size值並使用臨時文件來保存事務中的語句的事務數量。
・ Binlog_cache_use ・ Bytes_received ・ Bytes_sent ・ Com_xxx
Com_xxx 語句計數變量表示每個xxx 語句執行的次數。每類語句有一個狀態變量。例如,Com_delete和Com_insert分別統計DELETE 和INSERT語句 Com_stmt_xxx狀態變量為:
o Com_stmt_prepare
o Com_stmt_execute
o Com_stmt_fetch
o Com_stmt_send_long_data
o Com_stmt_reset
o Com_stmt_close
這些變量代表准備好的語句命令。它們的名字對應網絡層使用的COM_xxx 命令系列;換句話說:當准備好的語句API調用如MySQL_stmt_prepare()、
MySQL_stmt_執行()並執行時,它們的值增加。但是,當執行下面的SQL語句時,Com_stmt_prepare, Com_stmt_execute和Com_stmt_close也增加:
PREPARE、EXECUTE或DEALLOCATE PREPARE。此外,舊(從MySQL 4.1.3起可用)語句計數變量Com_prepare_sql、Com_execute_sql和
Com_dealloc_sql的值也隨PREPARE、EXECUTE和DEALLOCATE PREPARE語句增加。Com_stmt_fetch代表通過光標獲取的網絡round-trips的總數所有Com_stmt_xxx變量將增加,即使語句參數未知或執行過程中出現錯誤。換句話說,它們的值對應發出的請求數,而不是成功完成的請求數。
・ Connections
試圖連接到(不管是否成功)MySQL服務器的連接數。
・ Created_tmp_disk_tables ・ Created_tmp_files
MySQLd已經創建的臨時文件的數量。
・ Created_tmp_files
服務器執行語句時自動創建的內存中的臨時表的數量。如果Created_tmp_disk_tables較大,你可能要增加tmp_table_size值使臨時 表基於內存而不基・ Delayed_errors
用INSERT DELAYED寫的出現錯誤的行數(可能為duplicate key)。
・ Delayed_insert_threads
使用的INSERT DELAYED處理器線程數。
・ Delayed_writes
寫入的INSERT DELAYED行數。
・ Flush_commands
執行的FLUSH語句數。
・ Handler_commit ・ Handler_discover
MySQL服務器可以問NDB CLUSTER存儲引擎是否知道某一名字的表。這被稱作發現。Handler_discover說明通過該方法發現的次數。
・ Handler_delete ・ Handler_read_first
索引中第一條被讀的次數。如果較高,它建議服務器正執行大量全索引掃描;例如,SELECT col1 FROM foo,假定col1有索引。
・ Handler_read_key ・ Handler_read_next ・ Handler_read_prev
按照鍵順序讀前一行的請求數。該讀方法主要用於優化ORDER BY ... DESC。
・ Handler_read_rnd
根據固定位置讀一行的請求數。如果你正執行大量查詢並需要對結果進行排序該值較高。你可能使用了大量需要MySQL掃描整個表的查詢或你的・ Handler_read_rnd_next ・ Handler_rollback
內部ROLLBACK語句的數量。
・ Handler_update ・ Handler_write ・ Innodb_buffer_pool_pages_data ・ Innodb_buffer_pool_pages_dirty ・ Innodb_buffer_pool_pages_flushed ・ Innodb_buffer_pool_pages_free ・ Innodb_buffer_pool_pages_latched
在InnoDB緩沖池中鎖定的頁數。這是當前正讀或寫或由於其它原因不能清空或刪除的頁數。
・ Innodb_buffer_pool_pages_misc
忙的頁數,因為它們已經被分配優先用作管理,例如行鎖定或適用的哈希索引。該值還可以計算為Innodb_buffer_pool_pages_total -
Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data。
・ Innodb_buffer_pool_pages_total ・ Innodb_buffer_pool_read_ahead_rnd
InnoDB初始化的“隨機”read-aheads數。當查詢以隨機順序掃描表的一大部分時發生。
・ Innodb_buffer_pool_read_ahead_seq
InnoDB初始化的順序read-aheads數。當InnoDB執行順序全表掃描時發生。
・ Innodb_buffer_pool_read_requests
InnoDB已經完成的邏輯讀請求數。
・ Innodb_buffer_pool_reads
不能滿足InnoDB必須單頁讀取的緩沖池中的邏輯讀數量。
・ Innodb_buffer_pool_wait_free
一般情況,通過後台向InnoDB緩沖池寫。但是,如果需要讀或創建頁,並且沒有干淨的頁可用,則它還需要先等待頁面清空。該計數器對等待實・ Innodb_buffer_pool_write_requests
向InnoDB緩沖池的寫數量。
・ Innodb_data_fsyncs
fsync()操作數。
・ Innodb_data_pending_fsyncs
當前掛起的fsync()操作數。
・ Innodb_data_pending_reads ・ Innodb_data_pending_writes ・ Innodb_data_read ・ Innodb_data_reads ・ Innodb_data_writes ・ Innodb_data_written ・ Innodb_dblwr_writes, Innodb_dblwr_pages_written ・ Innodb_log_waits ・ Innodb_log_write_requests ・ Innodb_log_writes ・ Innodb_os_log_fsyncs
向日志文件完成的fsync()寫數量。
・ Innodb_os_log_pending_fsyncs
掛起的日志文件fsync()操作數量。
・ Innodb_os_log_pending_writes ・ Innodb_os_log_written ・ Innodb_page_size
編譯的InnoDB頁大小(默認16KB)。許多值用頁來記數;頁的大小很容易轉換為字節。
・ Innodb_pages_created ・ Innodb_pages_read ・ Innodb_pages_written ・ Innodb_row_lock_current_waits ・ Innodb_row_lock_time ・ Innodb_row_lock_time_avg ・ Innodb_row_lock_time_max ・ Innodb_row_lock_waits ・ Innodb_rows_deleted
從InnoDB表刪除的行數。
・ Innodb_rows_inserted
插入到InnoDB表的行數。
・ Innodb_rows_read
從InnoDB表讀取的行數。
・ Innodb_rows_updated
InnoDB表內更新的行數。
・ Key_blocks_not_flushed ・ Key_blocks_unused
鍵緩存內未使用的塊數量。你可以使用該值來確定使用了多少鍵緩存;
・ Key_blocks_used ・ Key_read_requests ・ Key_reads
從硬盤讀取鍵的數據塊的次數。如果Key_reads較大,則Key_buffer_size值可能太小。可以用Key_reads/Key_read_requests計算緩存損失率。
・ Key_write_requests ・ Key_writes ・ Last_query_cost
用查詢優化器計算的最後編譯的查詢的總成本。用於對比同一查詢的不同查詢方案的成本。默認值0表示還沒有編譯查詢。 默認值是0。
Last_query_cost具有會話范圍。
・ Max_used_connections ・ Not_flushed_delayed_rows
等待寫入INSERT DELAY隊列的行數。
・ Open_files ・ Open_streams ・ Open_tables ・ Opened_tables
已經打開的表的數量。如果Opened_tables較大,table_cache 值可能太小。
・ QCACHE_free_blocks ・ QCACHE_free_memory ・ QCACHE_hits ・ QCACHE_inserts ・ QCACHE_lowmem_prunes ・ QCACHE_not_cached
非緩存查詢數(不可緩存,或由於query_cache_type設定值未緩存)。
・ Qcache_querIEs_in_cache ・ Qcache_total_blocks ・ Questions ・ Rpl_status ・ Select_full_join
沒有使用索引的聯接的數量。如果該值不為0,你應仔細檢查表的索引。
・ Select_full_range_join ・ Select_range ・ Select_range_check
在每一行數據後對鍵值進行檢查的不帶鍵值的聯接的數量。如果不為0,你應仔細檢查表的索引。
・ Select_scan ・ Slave_open_temp_tables
當前由從SQL線程打開的臨時表的數量。
・ Slave_running
如果該服務器是連接到主服務器的從服務器,則該值為ON。
・ Slave_retrIEd_transactions
啟動後復制從服務器SQL線程嘗試事務的總次數。
・ Slow_launch_threads
創建時間超過slow_launch_time秒的線程數。
・ Slow_querIEs
查詢時間超過long_query_time秒的查詢的個數。
・ Sort_merge_passes
排序算法已經執行的合並的數量。如果這個變量值較大,應考慮增加sort_buffer_size系統變量的值。
・ Sort_range ・ Sort_rows ・ Sort_scan ・ Ssl_xxx
用於SSL連接的變量。
・ Table_locks_immediate ・ Table_locks_waited ・ Threads_cached ・ Threads_connected ・ Threads_created
創建用來處理連接的線程數。如果Threads_created較大,你可能要增加thread_cache_size值。緩存訪問率的計算方法Threads_created/Connections。
・ Threads_running ・ Uptime
服務器已經運行的時間(以秒為單位)。