MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

26.34 INFORMATION_SCHEMA STATISTICS テーブル

STATISTICS テーブルは、テーブルインデックスの情報を提供します。

テーブル統計を表す STATISTICS のカラムには、キャッシュされた値が保持されます。 information_schema_stats_expiry システム変数は、キャッシュされたテーブルの統計が期限切れになるまでの期間を定義します。 デフォルトは 86400 秒 (24 時間) です。 キャッシュされた統計がない場合、または統計が期限切れになっている場合は、テーブル統計カラムのクエリー時にストレージエンジンから統計が取得されます。 特定のテーブルのキャッシュされた値をいつでも更新するには、ANALYZE TABLE を使用します。 常に最新の統計をストレージエンジンから直接取得するには、information_schema_stats_expiry=0 を設定します。 詳細は、セクション8.2.3「INFORMATION_SCHEMA クエリーの最適化」を参照してください。

注記

innodb_read_only システム変数が有効になっている場合、InnoDB を使用するデータディクショナリの統計テーブルを更新できないため、ANALYZE TABLE が失敗することがあります。 キー分散を更新する ANALYZE TABLE 操作では、操作によってテーブル自体が更新された場合でも (MyISAM テーブルの場合など)、障害が発生する可能性があります。 更新された分散統計を取得するには、information_schema_stats_expiry=0 を設定します。

STATISTICS テーブルには、次のカラムがあります:

メモ

テーブルインデックスに関する情報は、SHOW INDEX ステートメントからも入手できます。 セクション13.7.7.22「SHOW INDEX ステートメント」を参照してください。 次のステートメントは同等です。

SELECT * FROM INFORMATION_SCHEMA.STATISTICS
  WHERE table_name = 'tbl_name'
  AND table_schema = 'db_name'

SHOW INDEX
  FROM tbl_name
  FROM db_name