2024 日本 PHP 研討會

統計

MySQL 原生驅動程式支援收集客戶端與伺服器之間通訊的統計資料。收集的統計資料主要有兩種類型

  • 客戶端統計資料
  • 連線統計資料

使用 mysqli 擴充時,可以透過兩個 API 呼叫取得這些統計資料

注意統計資料會彙總在所有使用 MySQL 原生驅動程式的擴充中。例如,如果 mysqli 擴充和 PDO MySQL 驅動程式都設定為使用 MySQLnd,則來自 mysqli 的函式呼叫和來自 PDO 的方法呼叫都會影響統計資料。 無法得知針對 MySQL 原生驅動程式編譯的任何擴充的特定 API 呼叫對特定統計資料的影響程度。

擷取統計資料

用戶端統計數據可以透過呼叫 mysqli_get_client_stats() 函式來取得。

連線統計數據可以透過呼叫 mysqli_get_connection_stats() 函式來取得。

這兩個函式都會返回一個關聯陣列,其中統計數據的名稱為對應統計數據的鍵值。

MySQL 原生驅動程式統計數據

大多數統計數據都與連線相關聯,但有些統計數據與行程相關聯,在這種情況下會特別說明。

以下統計數據是由 MySQL 原生驅動程式產生的

網路相關統計數據
bytes_sent
從 PHP 傳送到 MySQL 伺服器的位元組數。
bytes_received
從 MySQL 伺服器接收的位元組數。
packets_sent
MySQL 用戶端伺服器協定傳送的封包數。
packets_received
從 MySQL 用戶端伺服器協定接收的封包數。
protocol_overhead_in
傳入流量的 MySQL 用戶端伺服器協定額外負荷(以位元組為單位)。目前只有封包標頭 (4 位元組) 被視為額外負荷。protocol_overhead_in = packets_received * 4
protocol_overhead_out
傳出流量的 MySQL 用戶端伺服器協定額外負荷(以位元組為單位)。目前只有封包標頭 (4 位元組) 被視為額外負荷。protocol_overhead_out = packets_received * 4
bytes_received_ok_packet
接收到的 MySQL 用戶端伺服器協定 OK 封包的總位元組數。OK 封包可以包含狀態訊息。狀態訊息的長度可能不同,因此 OK 封包的大小不固定。

注意 總位元組數包含標頭封包的大小(4 位元組,請參閱協定額外負荷)。

packets_received_ok
接收到的 MySQL 用戶端伺服器協定 OK 封包的數量。
bytes_received_eof_packet
接收到的 MySQL 用戶端伺服器協定 EOF 封包的總位元組數。EOF 的大小會根據伺服器版本而有所不同。此外,EOF 可以傳輸錯誤訊息。

注意 總位元組數包含標頭封包的大小(4 位元組,請參閱協定額外負荷)。

packets_received_eof
MySQL 用戶端伺服器協定 EOF 封包的數量。 與其他封包統計數據一樣,即使 PHP 沒有收到預期的封包,例如收到錯誤訊息,封包數量也會增加。
bytes_received_rset_header_packet
MySQL 用戶端伺服器協定結果集標頭封包的總位元組數。封包的大小會根據有效負載(LOAD LOCAL INFILEINSERTUPDATESELECT、錯誤訊息)而有所不同。

注意 總位元組數包含標頭封包的大小(4 位元組,請參閱協定額外負荷)。

packets_received_rset_header
MySQL 用戶端伺服器協定結果集標頭封包的數量。
bytes_received_rset_field_meta_packet
MySQL 用戶端伺服器協定結果集詮釋資料(欄位資訊)封包的總位元組數。當然,大小會隨著結果集中的欄位而有所不同。在 COM_LIST_FIELDS 的情況下,封包也可能傳輸錯誤或 EOF 封包。

注意 總位元組數包含標頭封包的大小(4 位元組,請參閱協定額外負荷)。

packets_received_rset_field_meta
MySQL 用戶端伺服器協定結果集詮釋資料(欄位資訊)封包的數量。
bytes_received_rset_row_packet
MySQL 用戶端伺服器協定結果集列資料封包的總位元組數。此封包也可能傳輸錯誤或 EOF 封包。可以透過從 bytes_received_rset_row_packet 中減去 rows_fetched_from_server_normalrows_fetched_from_server_ps 來計算錯誤和 EOF 封包的數量。

注意 總位元組數包含標頭封包的大小(4 位元組,請參閱協定額外負荷)。

packets_received_rset_row
MySQL 用戶端伺服器協定結果集列資料封包的數量。
bytes_received_prepare_response_packet
MySQL 用戶端伺服器協定中,用於準備語句初始化封包(準備語句初始化封包)的 OK 封包的總位元組數。此封包也可能傳輸錯誤。封包大小取決於 MySQL 版本。

注意 總位元組數包含標頭封包的大小(4 位元組,請參閱協定額外負荷)。

packets_received_prepare_response
MySQL 用戶端伺服器協定中,用於準備語句初始化封包(準備語句初始化封包)的 OK 封包的數量。
bytes_received_change_user_packet
MySQL 用戶端伺服器協定 COM_CHANGE_USER 封包的總位元組數。此封包也可能傳輸錯誤或 EOF。

注意 總位元組數包含標頭封包的大小(4 位元組,請參閱協定額外負荷)。

packets_received_change_user
MySQL 用戶端伺服器協定 COM_CHANGE_USER 封包的數量。
packets_sent_command
從 PHP 傳送到 MySQL 的 MySQL 用戶端伺服器協定命令數量。無法得知已發送哪些特定命令以及發送了多少個命令。
bytes_received_real_data_normal
PHP 用戶端使用文字協定從 mysqlnd 擷取的有效負載位元組數。這是 PHP 用戶端已擷取的、非源自準備語句的結果集中所包含的實際資料大小。請注意,儘管 mysqlnd 可能已從 MySQL 提取完整的結果集,但此統計資訊僅計算 PHP 用戶端從 mysqlnd 提取的實際資料。

以下程式碼範例會增加此值:

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();
每次擷取操作都會增加此值。

但是,如果結果集僅緩衝在用戶端上,但未擷取,例如以下範例,則此統計資訊不會增加

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();

bytes_received_real_data_ps
PHP 用戶端使用準備語句協定從 mysqlnd 擷取的有效負載位元組數。這是 PHP 用戶端已擷取的、源自準備語句的結果集中所包含的實際資料大小。如果 PHP 用戶端未後續讀取結果集,則此值不會增加。請注意,儘管 mysqlnd 可能已從 MySQL 提取完整的結果集,但此統計資訊僅計算 PHP 用戶端從 mysqlnd 提取的實際資料。另請參閱 bytes_received_real_data_normal
結果集相關統計資訊
result_set_queries
已產生結果集的查詢數量。產生結果集的查詢範例:SELECTSHOW如果從該行讀取結果集標頭封包時發生錯誤,則此統計資訊不會增加。

注意此統計資訊可用作 PHP 傳送到 MySQL 的查詢數量的間接衡量標準。這有助於識別造成高資料庫負載的用戶端。

non_result_set_queries
未產生結果集的查詢數量。未產生結果集的查詢範例:INSERTUPDATELOAD DATA如果從該行讀取結果集標頭封包時發生錯誤,則此統計資訊不會增加。

注意此統計資訊可用作 PHP 傳送到 MySQL 的查詢數量的間接衡量標準。這有助於識別造成高資料庫負載的用戶端。

no_index_used
已產生結果集但未使用索引的查詢數量。(另請參閱 mysqld 啟動選項 --log-queries-not-using-indexes)。

注意這些查詢可以通過呼叫 mysqli_report(MYSQLI_REPORT_INDEX); 以例外狀況的形式回報。也可以通過呼叫 mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT); 將它們以警告的形式回報。

bad_index_used(使用不良索引)
已產生結果集但未使用良好索引的查詢數量。(另請參閱 mysqld 啟動選項 --log-slow-queries)。

注意這些查詢可以通過呼叫 mysqli_report(MYSQLI_REPORT_INDEX); 以例外狀況的形式回報。也可以通過呼叫 mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT); 將它們以警告的形式回報。

slow_queries(慢速查詢)
執行時間超過 long_query_time 秒且至少需要檢查 min_examined_row_limit 行的 SQL 陳述式。
注意

不會透過 mysqli_report() 回報。

buffered_sets(已緩衝的結果集)
由一般查詢(即非透過預備陳述式)返回的已緩衝結果集數量。

會在用戶端緩衝結果集的 API 呼叫範例:mysqli_query()mysqli_store_result()mysqli_stmt_get_result()

unbuffered_sets(未緩衝的結果集)
由一般查詢(即非透過預備陳述式)返回的未緩衝結果集數量。

不會在用戶端緩衝結果集的 API 呼叫範例:mysqli_use_result()

ps_buffered_sets(預備陳述式已緩衝的結果集)
由預備陳述式返回的已緩衝結果集數量。

會在用戶端緩衝結果集的 API 呼叫範例:mysqli_stmt_store_result()

ps_unbuffered_sets(預備陳述式未緩衝的結果集)
由預備陳述式返回的未緩衝結果集數量。預設情況下,預備陳述式是未緩衝的,因此大多數預備陳述式都會計入此統計數據中。
flushed_normal_sets(已清空的一般結果集)
由一般查詢(即非透過預備陳述式)返回的含有未讀取數據且已被靜默清空的結果集數量。

注意僅未緩衝的結果集會被清空。在連線上執行新的查詢之前,必須完整擷取未緩衝的結果集,否則 MySQL 會擲回錯誤。如果應用程式未從未緩衝的結果集中擷取所有列,mysqlnd 會隱式擷取結果集以清除該行。另請參閱 rows_skipped_normalrows_skipped_ps

可能造成隱式清空的一些原因

  • 用戶端應用程式錯誤
  • 用戶端在找到所需內容後停止讀取,但已使 MySQL 計算了比所需更多的記錄
  • 用戶端應用程式意外停止

flushed_ps_sets(已清空的預備陳述式結果集)
來自預備陳述式且含有未讀取數據並已被靜默清空的結果集數量。

注意僅未緩衝的結果集會被清空。在連線上執行新的查詢之前,必須完整擷取未緩衝的結果集,否則 MySQL 會擲回錯誤。如果應用程式未從未緩衝的結果集中擷取所有列,mysqlnd 會隱式擷取結果集以清除該行。另請參閱 rows_skipped_normalrows_skipped_ps

可能造成隱式清空的一些原因

  • 用戶端應用程式錯誤
  • 用戶端在找到所需內容後停止讀取,但已使 MySQL 計算了比所需更多的記錄
  • 用戶端應用程式意外停止

ps_prepared_never_executed(已準備但從未執行的預備陳述式)
已準備但從未執行的陳述式數量。
ps_prepared_once_executed(僅執行一次的預備陳述式)
僅執行一次的預備陳述式數量。
rows_fetched_from_server_normal(從伺服器擷取的一般列數)
rows_fetched_from_server_ps(從伺服器擷取的預備陳述式列數)
從伺服器擷取的結果集列總數。這包括了未被客戶端讀取但由於未緩衝結果集被清空而隱式擷取的列。 另請參閱 packets_received_rset_row
rows_buffered_from_client_normal
源自一般查詢的已緩衝列總數。 這是從 MySQL 擷取並在客戶端緩衝的列數。

會緩衝結果的查詢範例

rows_buffered_from_server_ps
rows_buffered_from_client_normal 相同,但適用於預備語句。
rows_fetched_from_client_normal_buffered
客戶端從由一般查詢建立的已緩衝結果集中擷取的列總數。
rows_fetched_from_client_ps_buffered
客戶端從由預備語句建立的已緩衝結果集中擷取的列總數。
rows_fetched_from_client_normal_unbuffered
客戶端從由一般查詢建立的未緩衝結果集中擷取的列總數。
rows_fetched_from_client_ps_unbuffered
客戶端從由預備語句建立的未緩衝結果集中擷取的列總數。
rows_fetched_from_client_ps_cursor
客戶端從由預備語句建立的游標擷取的列總數。
rows_skipped_normal
rows_skipped_ps
保留供未來使用(目前不支援)。
copy_on_write_saved
copy_on_write_performed
這是一個行程層級範圍的統計數據。 使用 mysqlnd 時,擴充功能返回的變數指向 mysqlnd 內部網路結果緩衝區。如果數據未更改,則擷取的數據只會在記憶體中保留一次。但是,對數據的任何修改都需要 mysqlnd 執行寫入時複製操作。
explicit_free_result
implicit_free_result
這是一個連線和行程層級範圍的統計數據。 已釋放結果集的總數。
proto_text_fetched_null
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_NULL 類型欄位的總數。
proto_binary_fetched_null
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_NULL 類型欄位的總數。
proto_text_fetched_bit
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_BIT 類型欄位的總數。
proto_binary_fetched_bit
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_BIT 類型欄位的總數。
proto_text_fetched_tinyint
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_TINY 類型欄位的總數。
proto_binary_fetched_tinyint
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_TINY 類型欄位的總數。
proto_text_fetched_short
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_SHORT 類型欄位的總數。
proto_binary_fetched_short
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_SHORT 類型欄位的總數。
proto_text_fetched_int24
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_INT24 類型欄位的總數。
proto_binary_fetched_int24
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_INT24 類型欄位的總數。
proto_text_fetched_int
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_LONG 類型欄位的總數。
proto_binary_fetched_int
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_LONG 類型欄位的總數。
proto_text_fetched_bigint
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_LONGLONG 類型欄位的總數。
proto_binary_fetched_bigint
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_LONGLONG 類型欄位總數。
proto_text_fetched_decimal
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_DECIMALMYSQL_TYPE_NEWDECIMAL 類型欄位總數。
proto_binary_fetched_decimal
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_DECIMALMYSQL_TYPE_NEWDECIMAL 類型欄位總數。
proto_text_fetched_float
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_FLOAT 類型欄位總數。
proto_binary_fetched_float
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_FLOAT 類型欄位總數。
proto_text_fetched_double
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_DOUBLE 類型欄位總數。
proto_binary_fetched_double
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_DOUBLE 類型欄位總數。
proto_text_fetched_date
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_DATEMYSQL_TYPE_NEWDATE 類型欄位總數。
proto_binary_fetched_date
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_DATEMYSQL_TYPE_NEWDATE 類型欄位總數。
proto_text_fetched_year
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_YEAR 類型欄位總數。
proto_binary_fetched_year
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_YEAR 類型欄位總數。
proto_text_fetched_time
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_TIME 類型欄位總數。
proto_binary_fetched_time
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_TIME 類型欄位總數。
proto_text_fetched_datetime
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_DATETIME 類型欄位總數。
proto_binary_fetched_datetime
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_DATETIME 類型欄位總數。
proto_text_fetched_timestamp
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_TIMESTAMP 類型欄位總數。
proto_binary_fetched_timestamp
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_TIMESTAMP 類型欄位總數。
proto_text_fetched_string
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_STRINGMYSQL_TYPE_VARSTRINGMYSQL_TYPE_VARCHAR 類型欄位總數。
proto_binary_fetched_string
從準備好的陳述式 (MySQL 二進位協定) 中擷取的 MYSQL_TYPE_STRINGMYSQL_TYPE_VARSTRINGMYSQL_TYPE_VARCHAR 類型欄位總數。
proto_text_fetched_blob
從一般查詢 (MySQL 文字協定) 中擷取的 MYSQL_TYPE_TINY_BLOBMYSQL_TYPE_MEDIUM_BLOBMYSQL_TYPE_LONG_BLOBMYSQL_TYPE_BLOB 類型欄位總數。
proto_binary_fetched_blob
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_TINY_BLOBMYSQL_TYPE_MEDIUM_BLOBMYSQL_TYPE_LONG_BLOBMYSQL_TYPE_BLOB 類型欄位的總數。
proto_text_fetched_enum
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_ENUM 類型欄位的總數。
proto_binary_fetched_enum
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_ENUM 類型欄位的總數。
proto_text_fetched_set
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_SET 類型欄位的總數。
proto_binary_fetched_set
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_SET 類型欄位的總數。
proto_text_fetched_geometry
從一般查詢(MySQL 文字協定)擷取的 MYSQL_TYPE_GEOMETRY 類型欄位的總數。
proto_binary_fetched_geometry
從預備語句(MySQL 二進位協定)擷取的 MYSQL_TYPE_GEOMETRY 類型欄位的總數。
proto_text_fetched_other
從一般查詢(MySQL 文字協定)擷取的,未在前面列出的 MYSQL_TYPE_* 類型欄位的總數。

注意 理論上,這個值應該永遠是 0

proto_binary_fetched_other
從預備語句(MySQL 二進位協定)擷取的,未在前面列出的 MYSQL_TYPE_* 類型欄位的總數。

注意 理論上,這個值應該永遠是 0

連線相關統計
connect_success
連線嘗試成功的總次數。

注意 connect_success 包含持久連線和非持久連線嘗試成功的總和。因此,非持久連線嘗試成功的次數為 connect_success - pconnect_success

pconnect_success
持久連線嘗試成功的總次數。
connect_failure
連線嘗試失敗的總次數。
reconnect
這是一個行程層級範圍的統計數據。
active_connections
這是一個行程層級範圍的統計數據。 持久和非持久連線的活躍連線總數。

注意 非持久連線的活躍連線總數為 active_connections - active_persistent_connections

active_persistent_connections
這是一個行程層級範圍的統計數據。 持久連線的活躍連線總數。
explicit_close
明確關閉的連線總數。

範例 #1 導致明確關閉的程式碼片段範例

  • $link = new mysqli(/* ... */);
    $link->close(/* ... */);
    
  • $link = new mysqli(/* ... */);
    $link->connect(/* ... */);
    
implicit_close
隱含關閉的連線總數。

範例 #2 導致隱含關閉的程式碼片段範例

  • $link = new mysqli(/* ... */);
    $link->real_connect(/* ... */);
    
  • unset($link)
  • 持久連線:已使用 real_connect 建立共用連線,並且可能設定了未知的選項 - 隱含關閉以避免返回具有未知選項的連線
  • 持久連線:ping/change_user 失敗,且 ext/mysqli 關閉連線
  • 腳本執行結束:關閉使用者尚未關閉的連線
disconnect_close
由 C API 函式 mysql_real_connect 指示的連線失敗,發生於嘗試建立連線期間。
in_middle_of_command_close
這是一個行程層級範圍的統計數據。 連線已在命令執行過程中關閉(未提取未完成的結果集,在發送查詢後和接收回覆前,在提取數據時,在使用 LOAD DATA 傳輸數據時)。
警告

除非使用非同步查詢,否則只有在 PHP 應用程式意外終止,且 PHP 自動關閉連線時才會發生這種情況。

init_command_executed_count
初始化命令執行的總次數。例如:mysqli_options(MYSQLI_INIT_COMMAND , $value) 成功執行的次數為 init_command_executed_count - init_command_failed_count
init_command_failed_count
初始化命令失敗的總次數。
COM_* 命令相關統計
com_quit
com_init_db
com_query
com_field_list
com_create_db
com_drop_db
com_refresh
com_shutdown
com_statistics
com_process_info
com_connect
com_process_kill
com_debug
com_ping
com_time
com_delayed_insert
com_change_user
com_binlog_dump
com_table_dump
com_connect_out
com_register_slave
com_stmt_prepare
com_stmt_execute
com_stmt_send_long_data
com_stmt_close
com_stmt_reset
com_stmt_set_option
com_stmt_fetch
com_daemon
從 PHP 向 MySQL 發送特定 COM_* 命令的嘗試總次數。 在檢查該行並在發送相應的 MySQL 用戶端伺服器協定封包之前,統計數據會立即增加。
注意

如果 MySQLnd 無法通過網路發送封包,統計數據將不會減少。如果發生錯誤,MySQLnd 會發出 PHP 警告「發送 %s 封包時出錯。PID=%d。」

範例 #3 使用範例

  • 檢查 PHP 是否向 MySQL 發送特定命令,例如,檢查用戶端是否發送 COM_PROCESS_KILL

  • 通過比較 COM_EXECUTECOM_PREPARE 來計算已準備語句的平均執行次數

  • 通過檢查 COM_QUERY 是否為零來檢查 PHP 是否執行了任何非準備好的 SQL 語句

  • 通過檢查 COM_QUERYCOM_EXECUTE 來識別執行過多 SQL 語句的 PHP 腳本

其他統計數據
explicit_stmt_close
implicit_stmt_close
這是一個行程層級範圍的統計數據。 已關閉的預備語句的總數。

注意預備語句一律會明確關閉。唯一會隱式關閉它的時間是在準備它失敗時。

mem_emalloc_count
mem_emalloc_ammount
mem_ecalloc_count
mem_ecalloc_ammount
mem_realloc_count
mem_realloc_ammount
mem_efree_count
mem_malloc_count
mem_malloc_ammount
mem_calloc_count
mem_calloc_ammount
mem_ealloc_count
mem_ealloc_ammount
mem_free_count
這是一個行程層級範圍的統計數據。 記憶體管理呼叫。
command_buffer_too_small
從 PHP 發送命令到 MySQL 時,網路命令緩衝區擴展的次數。 MySQLnd 為每個連線配置一個 mysqlnd.net_cmd_buffer_size 位元組的內部命令/網路緩衝區。 如果一個 MySQL Client Server 協議命令,例如 COM_QUERY(一般查詢),不適合放入緩衝區,MySQLnd 將會擴展緩衝區到發送命令所需的容量。每當一個連線的緩衝區被擴展時,command_buffer_too_small 的值就會加一。 如果 MySQLnd 幾乎在每個連線都必須將緩衝區擴展到超過其初始大小 mysqlnd.net_cmd_buffer_size 位元組,則應考慮增加預設大小以避免重新配置。
connection_reused(連線重用次數)
永久連線被重用的總次數。
新增註釋

使用者提供的註釋

此頁面沒有使用者提供的註釋。
To Top