文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁 (TGZ) - 258.2Kb
手冊頁 (Zip) - 365.3Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  MySQL 效能架構  /  效能架構中用於目前和歷史事件的表格

29.9 效能架構中用於目前和歷史事件的表格

對於等待、階段、陳述式和交易事件,效能架構可以監控並儲存目前的事件。此外,當事件結束時,效能架構可以將它們儲存在歷史表格中。對於每種事件類型,效能架構使用三個表格來儲存目前和歷史事件。表格的名稱具有以下形式,其中 xxx 表示事件類型(waitsstagesstatementstransactions

  • events_xxx_current目前事件表格儲存每個執行緒目前監控的事件(每個執行緒一列)。

  • events_xxx_history最近歷史表格儲存每個執行緒已結束的最近事件(每個執行緒最多列數)。

  • events_xxx_history_long長歷史表格儲存全域已結束的最近事件(跨所有執行緒,每個表格最多列數)。

每個事件類型的 _current 表格包含每個執行緒一列,因此沒有用於設定其最大大小的系統變數。效能架構會自動調整歷史表格的大小,或者可以在伺服器啟動時使用特定表格的系統變數明確設定大小,如描述個別歷史表格的章節中所述。典型的自動調整大小的值是 _history 表格每個執行緒 10 列,以及 _history_long 表格總共 10,000 列。

對於每個事件類型,_current_history_history_long 表格都具有相同的欄。 _current_history 表格具有相同的索引。 _history_long 表格沒有索引。

_current 表格會顯示伺服器內部目前正在發生的事情。當目前事件結束時,它會從其 _current 表格中移除。

_history_history_long 資料表會顯示最近發生的事件。當歷史資料表滿載時,舊的事件會在新事件加入時被捨棄。_history_history_long 資料表的列是以不同的方式過期,因為這些資料表服務於不同的目的。

  • _history 的目的是獨立於全域伺服器負載來調查個別的執行緒。

  • _history_long 的目的是全域地調查伺服器,而非每個執行緒。

這兩種歷史資料表之間的差異與資料保留政策有關。當首次看到事件時,這兩個資料表都包含相同的資料。然而,每個資料表內的資料會隨著時間以不同的方式過期,因此資料在每個資料表中可能會保留較長或較短的時間。

  • 對於 _history,當資料表包含給定執行緒的最大列數時,當該執行緒新增新列時,該執行緒最舊的列會被捨棄。

  • 對於 _history_long,當資料表滿載時,無論哪個執行緒產生了哪一列,當新增新列時,最舊的列會被捨棄。

當執行緒結束時,其所有列都會從 _history 資料表中捨棄,但不會從 _history_long 資料表中捨棄。

以下範例說明了事件如何新增至這兩種歷史資料表並從中捨棄。這些原則同樣適用於所有事件類型。該範例基於以下假設:

  • 效能綱要設定為在 _history 資料表中每個執行緒保留 10 列,在 _history_long 資料表中總共保留 10,000 列。

  • 執行緒 A 每秒產生 1 個事件。

    執行緒 B 每秒產生 100 個事件。

  • 沒有其他執行緒正在執行。

執行 5 秒後:

  • A 和 B 分別產生了 5 個和 500 個事件。

  • _history 包含 A 的 5 列和 B 的 10 列。由於每個執行緒的儲存空間限制為 10 列,因此 A 沒有捨棄任何列,而 B 捨棄了 490 列。

  • _history_long 包含 A 的 5 列和 B 的 500 列。由於資料表的最大大小為 10,000 列,因此沒有捨棄任何執行緒的列。

執行 5 分鐘(300 秒)後:

  • A 和 B 分別產生了 300 個和 30,000 個事件。

  • _history 包含 A 的 10 列和 B 的 10 列。由於每個執行緒的儲存空間限制為 10 列,因此 A 捨棄了 290 列,而 B 捨棄了 29,990 列。A 的列包含最多 10 秒前的資料,而 B 的列僅包含最多 0.1 秒前的資料。

  • _history_long 包含 10,000 列。由於 A 和 B 加起來每秒產生 101 個事件,因此資料表包含大約 10,000/101 = 99 秒前的資料,其中 B 的列與 A 的列之比約為 100 比 1。