カラムの剪定

列プルーニングの基本的な考え方は、演算子で使用されない列については、オプティマイザーが最適化中にそれらを保持する必要がないということです。これらの列を削除すると、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ルールに対応します。このルールを無効にする場合は、 最適化ルールと式プッシュダウンのブロックリストを参照してください。

このページは役に立ちましたか?

Playground
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.