MySQL 9.0 參考手冊  /  MySQL 資料字典  /  資料字典物件快取

16.4 資料字典物件快取

資料字典物件快取是一個共用的全域快取,用於將先前存取的資料字典物件儲存在記憶體中,以便重複使用物件並減少磁碟 I/O。與 MySQL 使用的其他快取機制類似,資料字典物件快取使用基於 LRU 的逐出策略,從記憶體中逐出最近最少使用的物件。

資料字典物件快取包含儲存不同物件類型的快取分割區。某些快取分割區大小限制是可設定的,而另一些則是硬式編碼的。

  • 表空間定義快取分割區:儲存表空間定義物件。tablespace_definition_cache 選項設定可以儲存在資料字典物件快取中的表空間定義物件數量上限。預設值為 256。

  • 綱要定義快取分割區:儲存綱要定義物件。schema_definition_cache 選項設定可以儲存在資料字典物件快取中的綱要定義物件數量上限。預設值為 256。

  • 表格定義快取分割區:儲存表格定義物件。物件上限設定為 max_connections 的值,其預設值為 151。

    表格定義快取分割區與使用 table_definition_cache 設定選項設定的表格定義快取並行存在。這兩個快取都儲存表格定義,但為 MySQL 伺服器的不同部分提供服務。一個快取中的物件並不依賴於另一個快取中物件的存在。

  • 儲存程式定義快取分割區:儲存儲存程式定義物件。stored_program_definition_cache 選項設定可以儲存在資料字典物件快取中的儲存程式定義物件數量上限。預設值為 256。

    儲存程式定義快取分割區與使用 stored_program_cache 選項設定的儲存程序和儲存函數快取並行存在。

    stored_program_cache 選項為每個連線快取的儲存程序或函數數量設定一個軟上限,並且每次連線執行儲存程序或函數時都會檢查此上限。另一方面,儲存程式定義快取分割區是一個共用的快取,用於儲存其他用途的儲存程式定義物件。儲存程式定義快取分割區中物件的存在並不依賴於儲存程序快取或儲存函數快取中物件的存在,反之亦然。

  • 字元集定義快取分割區:儲存字元集定義物件,並且具有 256 的硬式編碼物件上限。

  • 定序定義快取分割區:儲存定序定義物件,並且具有 256 的硬式編碼物件上限。

有關資料字典物件快取設定選項的有效值資訊,請參閱第 7.1.8 節「伺服器系統變數」