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

5mレコードテーブルのクエリにソートされたインデックスのみを使用するpostgres

    クエリを

    に変更します
    WHERE NOT emails."$$meta.deleted" = FALSE
      AND (emails."$$meta.created", emails.key) >
          ('2018-02-13T14:30:35.679075Z', '8c0a3151-bf17-490f-8124-d93f7482624f')
    

    このインデックスを使用します:

    CREATE INDEX ON emails ("$$meta.created", key)
       WHERE NOT emails."$$meta.deleted";
    

    説明:OR パフォーマンスの問題です 。ペアの辞書式比較として書き直すことで、ORを取り除くことができます。 、および単純なインデックススキャンにより、行が効率的に検出されます。 PostgreSQLは、ORDER BYをサポートするインデックスを使用するように誘惑されなくなりました。 。




    1. 最初のテーブルの外部キー

    2. フィールドリストエラーRmysqlの不明な列

    3. MySQLで文字列を実行することは可能ですか?

    4. 階層データのクローン作成