ほとんどのリレーショナル データベースは、次の 4 つの手順で JDBC / SQL クエリを処理します。
- 受信 SQL クエリを解析する
- SQL クエリをコンパイルする
- データ取得経路の計画/最適化
- 最適化されたクエリを実行/データを取得して返す
「受信クエリを解析する」とはどういう意味ですか? また、「データ取得経路を計画/最適化する」とはどういう意味ですか?
ほとんどのリレーショナル データベースは、次の 4 つの手順で JDBC / SQL クエリを処理します。
「受信クエリを解析する」とはどういう意味ですか? また、「データ取得経路を計画/最適化する」とはどういう意味ですか?
解析とは、入力された文字を調べて、キーワードや識別子の文字を調べ、コメントを無視し、引用符で囲まれた部分を文字列定数として配置し、全体的な構造を言語構文に一致させてすべてを理解することにより、それをコマンドまたはステートメントとして認識することを意味します。
計画/最適化とは、通常は実行時間に関して、結果を決定するための (考えられるすべての方法の中で) 最善の方法を見つけることを意味します。また、必要なロックの数を最小限に抑えることも意味します。クエリの一部を無視できる ( where ... and 1 == 1
) か、テーブルにまったくアクセスする必要がないなどの場合があります。