本記事では、OceanBaseデータベースのSQL作成におけるテーブルスキャンの規範について説明します。
OceanBaseデータベースのSQL作成において、SELECT、UPDATE、DELETE、REPLACE文でWHERE句を使用する場合、その句の条件はインデックスを通じて検索されるべきです。実行計画を確認するには、EXPLAINコマンドを使用して検証できます。
大規模なテーブルのフルスキャンはできるだけ避けることを推奨します。一般的に、大規模なテーブルに対するほとんどのクエリでは、インデックススキャンの方がフルスキャンよりも優れていますが、100行以下の静的テーブルについてはフルスキャンが可能です。SQL文の実行計画を確認するには、
EXPLAIN<sql_statement>コマンドを使用します。実行計画コマンドには3つのモードがあります:EXPLAIN BASICコマンドは、最も基本的な計画表示に使用されます。EXPLAIN EXTENDEDコマンドは、最も詳細な計画表示に使用されます(通常、問題のトラブルシューティング時にこの表示モードが使用されます)。コマンドで表示される情報は、一般ユーザーが計画全体の実行方法を理解するのに役立ちます。
ビジネス上、大規模なテーブルのフルスキャンやフルダンプ(dump)は、バックアップデータベースまたはオフライン読み取りデータベースで行うことを推奨します。
句内で完全なあいまいクエリまたは左あいまいクエリのLIKE条件のみを使用した検索は禁止されており、他のクエリ条件が必要です。
WHERE句のインデックス列または組み合わせインデックスの先導列に関数を使用することはできません。