top
Loading...
5.3.4.服務器狀態變量
5.3.4. 服務器狀態變量

服務器維護許多提供操作相關信息的狀態變量。你可以通過SHOW STATUS語句查看這些變量和它們的值:

mysql> SHOW STATUS;
+-----------------------------------+------------+
| Variable_name                     | Value      |
+-----------------------------------+------------+
| Aborted_clients                   | 0          |
| Aborted_connects                  | 0          |
| Bytes_received                    | 155372598  |
| Bytes_sent                        | 1176560426 |
 
 
| Connections                       | 30023      |
| Created_tmp_disk_tables           | 0          |
| Created_tmp_files                 | 3          |
| Created_tmp_tables                | 2          |
 
 
| Threads_created                   | 217        |
| Threads_running                   | 88         |
| Uptime                            | 1389872    |
+-----------------------------------+------------+
 

FLUSH STATUS語句可以將許多狀態變量重設為0

狀態變量有以下含義。沒有指示版本的變量在MySQL 5.1之前已經出現。關于它們的使用歷史,參見MySQL 5.0參考手冊

·         Aborted_clients

由于客戶端沒有正確關閉連接導致客戶端終止而中斷的連接數。參見A.2.10節,“通信錯誤和失效連接”。

·         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_deleteCom_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_executeCom_stmt_close也增加:PREPAREEXECUTEDEALLOCATE PREPARE。此外,舊(MySQL 4.1.3起可用)語句計數變量Com_prepare_sqlCom_execute_sqlCom_dealloc_sql的值也隨PREPAREEXECUTEDEALLOCATE 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

已經執行的雙寫操作數量和為此目的已經寫好的頁數。參見15.2.14.1節,“磁盤I/O”。

·         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

鍵緩存內未使用的塊數量。你可以使用該值來確定使用了多少鍵緩存;參見5.3.3節,“服務器系統變量”中Key_buffer_size的討論。

·         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表示還沒有編譯查詢。 默認值是0Last_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秒的查詢的個數。參見5.11.4節,“慢速查詢日志”。

·         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

服務器已經運行的時間(以秒為單位)。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
北斗有巢氏 有巢氏北斗