MySQL 8.4 版本注意事項
對於表格 I/O 事件,通常在 events_waits_current
中有兩列,而不是一列。例如,提取一列可能產生如下列
Row# EVENT_NAME TIMER_START TIMER_END
---- ---------- ----------- ---------
1 wait/io/file/myisam/dfile 10001 10002
2 wait/io/table/sql/handler 10000 NULL
提取列會導致檔案讀取。在範例中,表格 I/O 提取事件在檔案 I/O 事件之前開始,但尚未完成 (其 TIMER_END
值為 NULL
)。檔案 I/O 事件會「嵌套」在表格 I/O 事件內。
發生這種情況的原因是,不同於其他「原子」等候事件 (例如針對互斥鎖或檔案 I/O 的事件),表格 I/O 事件是「分子」事件,並包含 (與其他事件重疊)。在 events_waits_current
中,表格 I/O 事件通常有兩列
一列用於最近的表格 I/O 等候事件
一列用於最近的任何種類等候事件
通常 (但不總是),「任何種類」的等候事件與表格 I/O 事件不同。當每個附屬事件完成時,它會從 events_waits_current
中消失。此時,以及在下一個附屬事件開始之前,表格 I/O 等候也是最近的任何種類等候。