表在トークTiDBオペレータ掃引テーブル、索引スキャンオペレータ、連言標準形(CNF)、選言標準形(DNF)、スカイライン剪定

この章では、TiDBに次のソースを関連付けます:

  表1.どのように走査変換オペレータスイープインデックス演算子へ。

  選択オペレータは、インターバルスキャンに、簡素化をフィルタリングする方法2。

私たちは、テーブルがあるとします。

T1(
  識別INT主キーではないヌルAUTO_INCREMENT、整数
  bは整数
  Cはvarchar(256 )、
  インデックス() 
)。

ここで、IDはインデックスであり、主キーです。 

私たちは、次のSQLを実行します。

選択から、T1 = 5または(> 5とを(> 6及び< 8)と< 12)。

この計画のSQLの最後の実行は、この次のとおりです。

+ --------------- + -------- + ----------- + ------------ -------------------------------------------------- --------- + 
| ID | カウント| タスク| オペレーター情報| 
+ --------------- + -------- + ----------- + ------------ -------------------------------------------------- --------- + 
| IndexReader_6 | 260.00 | ルート| インデックス:IndexScan_5 | 
| └─IndexScan_5| 260.00 | 警官[tikv] | 表:T1、インデックス:範囲:[5,5]、(6,8)、キープ順序:偽、統計:擬似| 
+ --------------- + -------- + ----------- + ------------ -------------------------------------------------- --------- +  

これは、索引スキャンの実行計画である、索引スキャン間隔は、[5,5]、(6,8)です。

私たちは、そのような計画がどのように生成されるかを確認するために、ソースコードにアクセスしてください。

これは、最初のSQL実行計画を解析した後に生成されます。

論理最適化を行いlogicalOptimize関数を呼び出した後、実行計画は、このように書きます:

選択オペレータどこへ行きますか?

選択オペレータDataSourceがデータソースpushedDownCondsにおけるフィルタの演算子プッシュダウンを保存し、オペレータにプッシュダウンされ、ようなものです:

このような再帰的フィルタ演算子ツリーインデックスがインデックスは下の順であるため、そうツリーを切り替えるため、使用することは困難でスキャンし、スキャン間隔。

物理的な最適化では、生成がDetachCondAndBuildRangeForIndexスキャン間隔を呼び出し、この関数は再帰的に次の2つの関数と呼ばれています。

detachDNFCondAndBuildRangeForIndexは、選言標準形(DNF)、合わせたスキャン間隔またはスキャン間隔を生成する展開します。
detachCNFCondAndBuildRangeForIndex、合成走査期間または走査間隔を生成する、CNF(CNF)を展開。

上記式ツリーは、最終的に生成され、このような区間[5,5]、(6,8)---は、「[」再帰が解消され、「(」、閉区間開放部です。

次に、別のアプローチスキャン、インデックスはデータソースのアクセスリストに追加されます。

二つの選択肢があるデータソースpossibleAccessPathsでテーブルにアクセスするための可能な解決策割引:

  1.フルテーブルスキャン、フィルタ式ツリーを持つ:= 5または(> 5及び(> 6及び<8)と<12)。

  列インデックスを掃引2.スキャン区間[5,5]、(6,8)を行います。

 

物理的な最適化フェーズは、木のオペレータのルートから各再帰呼び出しfindBestTask演算子のために機能し、possibleAccessPathsから最適な実行計画を取得しますDataSoure演算子。

 

優れた実施計画を決定し、最終的にはデータソース演算子を置き換えるために、インデックススキャンオペレータとするために、複数の次元からアルゴリズムを剪定ここで使用スカイライン、。

最終的な実行計画を生成します。

 

 エンド;

 

 

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/lijingshanxi/p/12077587.html