10bet网址
MySQL 5.6リファレンスマニュアルgydF4y2Ba
下载本手册gydF4y2Ba
PDF(美国高级主任)gydF4y2Ba- 26.8 mbgydF4y2Ba
PDF (A4)gydF4y2Ba- 26.8 mbgydF4y2Ba


MySQL 5.6リファレンスマニュアルgydF4y2Ba/gydF4y2Ba...gydF4y2Ba/gydF4y2Ba InnoDBテ,ブルに対するANALYZE TABLEの複雑さの推定gydF4y2Ba

14.13.17 InnoDBテ,ブルに対するANALYZE TABLEの複雑さの推定.使用实例gydF4y2Ba

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

注記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で定義されます)gydF4y2Ba

  • n_cols_in_uniq_igydF4y2Baは,すべての一意のンデックス内のすべてのカラムの総数(主キカラムはカウントしない)gydF4y2Ba

  • n_cols_in_non_uniq_igydF4y2Baは,すべての一意でないgydF4y2Ba

  • n_cols_in_pkgydF4y2Baは,主キ,内のカラム数(主キ,が定義されていない場合,gydF4y2BaInnoDBgydF4y2Baは単一カラムの主キを内部的に作成します)gydF4y2Ba

  • n_non_uniq_igydF4y2Baは,テ,ブル内の一意でない,ンデックスの数gydF4y2Ba

  • n_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

注記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)gydF4y2Ba

  • n_cols_in_non_uniq_igydF4y2Ba(すべての一意でないescンデックス内のすべてのカラムの総数)は4 (gydF4y2BaegydF4y2Ba、gydF4y2BafgydF4y2Ba、gydF4y2BaggydF4y2Ba,およびgydF4y2BahgydF4y2Ba)gydF4y2Ba

  • n_cols_in_pkgydF4y2Ba(主キ,内のカラム数)は2 (gydF4y2Ba一个gydF4y2BaおよびgydF4y2BabgydF4y2Ba)gydF4y2Ba

  • n_non_uniq_igydF4y2Ba(テブル内の一意でないンデックスの数)は2 (gydF4y2Bai2nonuniqgydF4y2BaおよびgydF4y2Bai3nonuniqgydF4y2Ba)gydF4y2Ba

  • n_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

注記gydF4y2Ba

3 .一部のリ、フペ、ジはすでにバッファ、プ、ル内にキャッシュされている可能性があるためgydF4y2BaMiBgydF4y2Baのすべてがディスクから読み取られるとは限りません。gydF4y2Ba