InnoDBgydF4y2Ba
テ,ブルに対するgydF4y2Ba分析表gydF4y2Ba
の複雑さは,次のものに依存します。gydF4y2Ba
innodb_stats_persistent_sample_pagesgydF4y2Ba
で定義される,サンプリングされるペ,ジの数。gydF4y2Baテブル内のンデックス付きカラムの数gydF4y2Ba
パ,ティションの数。テ,ブルにパ,ティションが存在しない場合,パ,ティションの数は1であるとみなされます。gydF4y2Ba
これらのパラメ,タを使用すると,gydF4y2Ba分析表gydF4y2Ba
の複雑さを推定するための概略の計算式は次のようになります。gydF4y2Ba
innodb_stats_persistent_sample_pagesgydF4y2Ba
の値*テブル内のンデックス付きカラムの数*パティションの数gydF4y2Ba
通常は,この結果の値が大きいほど,gydF4y2Ba分析表gydF4y2Ba
の実行時間も大きくなります。gydF4y2Ba
innodb_stats_persistent_sample_pagesgydF4y2Ba
は,グロ,バルレベルでサンプリングされるペ,ジの数を定義します。個々のテ,ブルのサンプリングされるペ,ジの数を設定するには,gydF4y2Ba创建表gydF4y2Ba
またはgydF4y2BaALTER TABLEgydF4y2Ba
でgydF4y2BaSTATS_SAMPLE_PAGESgydF4y2Ba
オプションを使用します。詳細は,gydF4y2Baセクション14.13.16.1 "永続的オプティマザ統計のパラメタの構成"gydF4y2Baを参照してください。gydF4y2Ba
innodb_stats_persistent =了gydF4y2Ba
である場合,サンプリングされるペ,ジの数はgydF4y2Bainnodb_stats_transient_sample_pagesgydF4y2Ba
で定義されます。詳細は,gydF4y2Baセクション14.13.16.2 "非永続的オプティマザ統計のパラメタの構成"gydF4y2Baを参照してください。gydF4y2Ba
分析表gydF4y2Ba
の複雑さを推定するためのより詳細なアプロ,チを示すために,次の例を考えてみます。gydF4y2Ba
ビッグオ,表記gydF4y2Baでは,gydF4y2Ba分析表gydF4y2Ba
の複雑さは次のように記述されます。gydF4y2Ba
O(n_sample * (n_cols_in_uniq_i + n_cols_in_non_uniq_i + n_cols_in_pk * (1 + n_non_uniq_i)) * n_part)gydF4y2Ba
ここでは:gydF4y2Ba
n_samplegydF4y2Ba
は,サンプリングされるペ,ジの数(gydF4y2Bainnodb_stats_persistent_sample_pagesgydF4y2Ba
で定義されます)gydF4y2Ban_cols_in_uniq_igydF4y2Ba
は,すべての一意のンデックス内のすべてのカラムの総数(主キカラムはカウントしない)gydF4y2Ban_cols_in_non_uniq_igydF4y2Ba
は,すべての一意でないgydF4y2Ban_cols_in_pkgydF4y2Ba
は,主キ,内のカラム数(主キ,が定義されていない場合,gydF4y2BaInnoDBgydF4y2Ba
は単一カラムの主キを内部的に作成します)gydF4y2Ban_non_uniq_igydF4y2Ba
は,テ,ブル内の一意でない,ンデックスの数gydF4y2Ban_partgydF4y2Ba
は,パ,ティションの数。パ,ティションが定義されていない場合,そのテ,ブルは単一パ,ティションであるとみなされます。gydF4y2Ba
ここで,主キー(2つのカラム),一意のインデックス(2つのカラム),および2つの一意でないインデックス(それぞれ2つのカラム)を持つ次のテーブル(テーブルgydF4y2BatgydF4y2Ba
)を考えてみます。gydF4y2Ba
CREATE TABLE t (a INT, b INT, c INT, d INT, e INT, f INT, g INT, h INT, PRIMARY KEY (a, b), UNIQUE KEY i1uniq (c, d), KEY i2nonuniq (e, f), KEY i3nonuniq (g, h));gydF4y2Ba
上で説明したアルゴリズムに必要なカラムと▪▪ンデックスデ▪タに▪いて,テ▪ブルgydF4y2BatgydF4y2Ba
のgydF4y2Bamysql.innodb_index_statsgydF4y2Ba
永続的ンデックス統計テブルにクエリします。gydF4y2Ban_diff_pfx %gydF4y2Ba
の統計には,各。たとえば,カラムgydF4y2Ba一个gydF4y2Ba
およびgydF4y2BabgydF4y2Ba
は,主キ,の,ンデックスに対してカウントされます。一意でないインデックスの場合は,ユーザー定義のカラムに加えて,主キーカラム(a, b)がカウントされます。gydF4y2Ba
InnoDBgydF4y2Ba
永続的統計テ,ブルの詳細は,gydF4y2Baセクション14.13.16.1 "永続的オプティマザ統計のパラメタの構成"gydF4y2Baを参照してください。gydF4y2Ba
SELECT index_name, stat_name, stat_description FROM mysqlinnodb_index_stats WHERE database_name='test' AND table_name='t' AND stat_name like 'n_diff_pfx%';+------------+--------------+------------------+ | index_name | stat_name | stat_description | +------------+--------------+------------------+ | 主要| n_diff_pfx01 |一个| |主| n_diff_pfx02 | a, b | | i1uniq | n_diff_pfx01 c | | | i1uniq | n_diff_pfx02 | c, d | | i2nonuniq | n_diff_pfx01 e | | | i2nonuniq | n_diff_pfx02 | e, f | | i2nonuniq | n_diff_pfx03 | e, f,一个| | i2nonuniq | n_diff_pfx04 | e, f, a, b | | i3nonuniq | n_diff_pfx01 g | | | i3nonuniq | n_diff_pfx02 | g h | | i3nonuniq |n_diff_pfx03 | g h, | | i3nonuniq | n_diff_pfx04 | g h, a, b | +------------+--------------+------------------+gydF4y2Ba
上に示したンデックス統計デタとテブル定義に基づいて,次の値を確認できます。gydF4y2Ba
n_cols_in_uniq_igydF4y2Ba
(すべての一意の,主キ,カラムはカウントしない)は2 (gydF4y2BacgydF4y2Ba
およびgydF4y2BadgydF4y2Ba
)gydF4y2Ban_cols_in_non_uniq_igydF4y2Ba
(すべての一意でないescンデックス内のすべてのカラムの総数)は4 (gydF4y2BaegydF4y2Ba
、gydF4y2BafgydF4y2Ba
、gydF4y2BaggydF4y2Ba
,およびgydF4y2BahgydF4y2Ba
)gydF4y2Ban_cols_in_pkgydF4y2Ba
(主キ,内のカラム数)は2 (gydF4y2Ba一个gydF4y2Ba
およびgydF4y2BabgydF4y2Ba
)gydF4y2Ban_non_uniq_igydF4y2Ba
(テブル内の一意でないンデックスの数)は2 (gydF4y2Bai2nonuniqgydF4y2Ba
およびgydF4y2Bai3nonuniqgydF4y2Ba
)gydF4y2Ban_partgydF4y2Ba
(パ,ティションの数)はgydF4y2Ba
これで,スキャンされるリ,フペ,ジの数を決定するためにgydF4y2Bainnodb_stats_persistent_sample_pagesgydF4y2Ba
*(2 + 4 + 2 *(1 + 2)) * 1を計算できます。gydF4y2Bainnodb_stats_persistent_sample_pagesgydF4y2Ba
がgydF4y2Ba20.gydF4y2Ba
のデフォルト値に設定されており,かペジサズがデフォルトのgydF4y2Ba简约gydF4y2Ba
(gydF4y2Bainnodb_page_sizegydF4y2Ba
=16384)である場合は,テ,ブルgydF4y2BatgydF4y2Ba
に対して20 * 12 * 16384gydF4y2BaバereplicationトgydF4y2Ba
,まり約gydF4y2BaMiBgydF4y2Ba
が読み取られると推定できます。gydF4y2Ba
3 .一部のリ、フペ、ジはすでにバッファ、プ、ル内にキャッシュされている可能性があるためgydF4y2BaMiBgydF4y2Ba
のすべてがディスクから読み取られるとは限りません。gydF4y2Ba