PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

postgres hanya menggunakan indeks yang diurutkan untuk menanyakan tabel catatan 5m

Ubah kueri menjadi

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

dan gunakan indeks ini:

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

Penjelasan:OR adalah masalah kinerja . Dengan menulis ulang sebagai perbandingan leksikografis dari pasangan, Anda menyingkirkan OR , dan pemindaian indeks sederhana menemukan baris secara efisien. PostgreSQL tidak lagi tergoda untuk menggunakan indeks yang mendukung ORDER BY .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hasilkan rangkaian tanggal - gunakan tipe tanggal sebagai input

  2. Postgres INSERT INTO dengan SELECT memesan

  3. PostgreSQL:masalah penyandian pada Windows saat menggunakan utilitas baris perintah psql

  4. C#, Entity Framework Core &PostgreSql :memasukkan satu baris membutuhkan waktu 20+ detik

  5. Urutan tanpa celah PostgreSQL