MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  InnoDB のオプティマイザ統計の構成

15.8.10 InnoDB のオプティマイザ統計の構成

このセクションでは、InnoDB テーブルの永続オプティマイザ統計および非永続オプティマイザ統計を構成する方法について説明します。

永続オプティマイザ統計はサーバーの再起動後も永続化されるため、plan stability の向上とクエリーのパフォーマンスの一貫性が向上します。 永続オプティマイザ統計には、次のような利点があり、制御と柔軟性もあります:

  • innodb_stats_auto_recalc 構成オプションを使用して、テーブルに対する大幅な変更後に統計を自動的に更新するかどうかを制御できます。

  • STATS_PERSISTENTSTATS_AUTO_RECALC および STATS_SAMPLE_PAGES 句を CREATE TABLE および ALTER TABLE ステートメントとともに使用して、個々のテーブルのオプティマイザ統計を構成できます。

  • mysql.innodb_table_stats テーブルおよび mysql.innodb_index_stats テーブルのオプティマイザ統計データをクエリーすることができます。

  • mysql.innodb_table_stats テーブルおよび mysql.innodb_index_stats テーブルの last_update カラムを表示して、統計が最後に更新された日時を確認できます。

  • mysql.innodb_table_stats テーブルおよび mysql.innodb_index_stats テーブルを手動で変更して、特定のクエリー最適化計画を強制したり、データベースを変更せずに代替計画をテストできます。

永続オプティマイザ統計機能は、デフォルトで有効になっています (innodb_stats_persistent=ON)。

非永続オプティマイザ統計は、各サーバーの再起動時および他の操作後にクリアされ、次のテーブルアクセスで再計算されます。 その結果、統計の再計算時に異なる見積りが生成され、実行計画の選択肢やクエリーパフォーマンスの変動が生じる可能性があります。

このセクションでは、正確な統計と ANALYZE TABLE 実行時間のバランスを取る場合に役立つ可能性のある、ANALYZE TABLE の複雑さの見積りについても説明します。


関連キーワード:  InnoDB, テーブル, 構成, 統計, オプティマイザ, 永続, 圧縮, スペース, ロック, インデックス