sql >> Databáze >  >> RDS >> PostgreSQL

postgres pouze pomocí tříděného indexu pro dotazování tabulky 5m záznamů

Změňte dotaz na

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

a použijte tento index:

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

Vysvětlení:OR je problém s výkonem . Přepsáním jako lexikografické srovnání párů se zbavíte OR a jednoduché prohledávání indexů najde řádky efektivně. PostgreSQL již není v pokušení používat index, který podporuje ORDER BY .




  1. jak přidat datum (DateTime.now) do databáze mySql v C#

  2. MySQL Druhý (nebo třetí) index v řetězci

  3. Vnitřní smyčka while nefunguje

  4. Přenos dat z jedné databáze do jiné databáze