📣

TiDB Cloud Serverless が
Starter
に変わりました!このページは自動翻訳されたものです。
原文はこちらからご覧ください。

カラムの剪定

列プルーニングの基本的な考え方は、演算子で使用されない列については、最適化中にオプティマイザが保持する必要がないというものです。これらの列を削除することで、I/Oリソースの使用量を削減し、後続の最適化を容易にします。以下は列の繰り返しの例です。

テーブルtに4つの列(a、b、c、d)があるとします。次の文を実行できます。

select a from t where b> 5

このクエリでは、列aと列bのみが使用され、列cと列dは冗長です。この文のクエリプランでは、 Selectionの演算子が列bを使用し、 DataSource演算子が列aと列bを使用します。5 DataSource演算子は列cと列dを読み取らないため、これらはプルーニング可能です。

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

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