重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

カラムの剪定

列プルーニングの基本的な考え方は、オペレーターで使用されていない列の場合、オプティマイザーは最適化中にそれらを保持する必要がないということです。これらの列を削除すると、I / Oリソースの使用が減り、その後の最適化が容易になります。次に、列の繰り返しの例を示します。

テーブルtに4つの列(a、b、c、およびd)があるとします。次のステートメントを実行できます。

select a from t where b> 5

このクエリでは、列aと列bのみが使用され、列cと列dは冗長です。このステートメントのクエリプランに関して、 Selection演算子は列bを使用します。次に、 DataSource演算子は列aと列bを使用します。列cと列dは、 DataSource演算子が読み取らないため、剪定できます。

したがって、TiDBがロジック最適化フェーズでトップダウンスキャンを実行すると、リソースの浪費を減らすために冗長な列が削除されます。このスキャンプロセスは「カラムの剪定」と呼ばれ、 columnPrunerのルールに対応します。このルールを無効にする場合は、 最適化ルールと式のプッシュダウンのブロックリストを参照してください。

このページの内容