Bazy danych · Senior · Pytanie 53 z 75
Dlaczego zapytanie z OR po różnych kolumnach może być wolne i co może pomóc?
SELECT * FROM users WHERE email = $1 OR phone = $2;- 1
ORzawsze wymusza pełny skan tabeli niezależnie od indeksów - ✓Poprawna odpowiedź: Jeden indeks nie obsłuży obu warunków; PostgreSQL może użyć bitmap OR dwóch indeksów albo można przepisać zapytanie na
UNION - 3
ORjest niedozwolone wWHERE
Wyjaśnienie
Z indeksami na obu kolumnach BitmapOr je łączy. Bez jednego z nich planer wraca do skanowania tabeli.