文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  為 InnoDB 配置最佳化器統計資訊

17.8.10 為 InnoDB 配置最佳化器統計資訊

本節說明如何為 InnoDB 資料表配置持續性和非持續性最佳化器統計資訊。

持續性最佳化器統計資訊會在伺服器重新啟動時保留,從而實現更高的計畫穩定性和更一致的查詢效能。持續性最佳化器統計資訊也透過以下額外優點提供控制和彈性

  • 您可以使用 innodb_stats_auto_recalc 配置選項來控制是否在資料表發生重大變更後自動更新統計資訊。

  • 您可以使用 STATS_PERSISTENTSTATS_AUTO_RECALCSTATS_SAMPLE_PAGES 子句與 CREATE TABLEALTER TABLE 陳述式來配置個別資料表的最佳化器統計資訊。

  • 您可以在 mysql.innodb_table_statsmysql.innodb_index_stats 資料表中查詢最佳化器統計資訊資料。

  • 您可以檢視 mysql.innodb_table_statsmysql.innodb_index_stats 資料表的 last_update 欄,以查看統計資訊上次更新的時間。

  • 您可以手動修改 mysql.innodb_table_statsmysql.innodb_index_stats 資料表,以強制執行特定的查詢最佳化計畫,或在不修改資料庫的情況下測試替代計畫。

預設啟用持續性最佳化器統計資訊功能(innodb_stats_persistent=ON)。

非持續性最佳化器統計資訊會在每次伺服器重新啟動時以及在某些其他操作後清除,並在下次資料表存取時重新計算。因此,重新計算統計資訊時可能會產生不同的估計值,導致執行計畫中的不同選擇和查詢效能的變化。

本節也提供有關估計 ANALYZE TABLE 複雜度的資訊,這在嘗試在準確的統計資訊和 ANALYZE TABLE 執行時間之間取得平衡時可能會很有用。