id
powinno być ostatnie . Lubię
add_index "sms", ["From", "To", "SmsMessageSid", "id"], name: "on_id_from_to_sms_message_sid"
Generalnie:najpierw równość, później zasięg. Powiązane:
id
nadal powinien być dołączany, chyba że jest bardzo mało wierszy na kombinację ("From", "To", "SmsMessageSid")
. W ten sposób Postgres może wybrać pierwszy wiersz z góry indeksu bezpośrednio - w skanowaniu indeksu , a nie skanowanie indeksu mapy bitowej jak teraz widzisz.
Powiązane:
- Postgres nie używa indeksu, gdy skanowanie indeksu jest znacznie lepszą opcją
- Jak przyspieszyć działanie DISTINCT ON w PostgreSQL?