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

リストでINを使用するSQLクエリが非常に遅い

    VALUESに参加することがよくあります 条項はより効率的です:

    SELECT count(*) 
    FROM mytable 
      JOIN (
         values ('v1'), ('v2'), (...), ('v2000')
      ) as lookup(value) on lookup.value = mytable.some_column
    WHERE NOT other_column = 'something'
    AND another_column = 'something_else';
    

    「リスト」の形式に注意してください。 values 句では、各値を括弧で囲む必要があります。 ('v1'), ('v2'), ... ('v1', 'v2', ...)の代わりに

    オンラインの例: http://rextester.com/UUWVG71217

    値を比較する列が実際に数値(整数など)である場合は、しないことに注意してください。 一重引用符を使用して値を指定します。例: values (1),(2),(3),...(2000)



    1. SQLServer内部結合の基本と例

    2. MySQLではINNODBがデフォルトで有効になっていますか?

    3. MySQLを使用してサーバー側プロセスを管理する方法

    4. MySQLiは、SSLを使用する場合、デフォルトでサーバー証明書を検証しますか?