Datenbanken · Senior · Frage 53 von 75
Warum kann eine Abfrage mit OR über verschiedene Spalten langsam sein, und was hilft?
SELECT * FROM users WHERE email = $1 OR phone = $2;- 1
ORerzwingt immer einen vollen Tabellenscan, egal welche Indizes - 2Ein Index kann nicht beides bedienen; ein
UNIONprobieren - 3
ORist inWHEREnicht erlaubt
Antwort zeigen
Richtige Antwort: Ein Index kann nicht beides bedienen; ein UNION probieren
Erklärung
Mit Indizes auf beiden Spalten kombiniert ein BitmapOr sie. Fehlt einer davon, fällt der Planer auf einen Tabellenscan zurück.