sql >> データベース >  >> RDS >> PostgreSQL

内部結合とwherein句の実行

    1つのクエリを発行することと2つのクエリを発行することには違いがありますか?まあ、私は確かにそう願っています。 SQLエンジンは作業を行っており、2つのクエリに対して(特定の観点から)2倍の作業を行います。

    一般に、単一のクエリの解析は、1つのクエリを解析して中間結果セットを返し、それを別のクエリにフィードバックするよりも高速になります。クエリのコンパイルとデータのやり取りにはオーバーヘッドがあります。

    このクエリの場合:

    select * 
    from users u inner join
         location l
         on u.location = l.id 
    where u.location = 10; 
    

    users(location)にインデックスが必要です およびlocation(id)

    私は何か他のことを指摘したいと思います。クエリは同等ではありません。実際の比較クエリは次のとおりです。

    select l.*
    from location l
    where l.id = 10;
    

    whereに同じ列を使用しています およびon 。したがって、これが最も効率的なバージョンであり、location(id)にインデックスが必要です。 。



    1. 別のセッションでトランザクションコンテキストが使用されている理由は何ですか

    2. SQLAlchemy:from_selectを更新

    3. コンテキスト内の検索文字列を抽出します

    4. mysql_real_escape_stringは問題を引き起こしますか?