Czasami MySQL ma problemy z optymalizacją OR
zapytania. W takim przypadku możesz podzielić go na dwa zapytania za pomocą UNION
:
SELECT * FROM relationship WHERE e_e_oid = @value1
UNION
SELECT * FROM relationship WHERE e_e_oid2 = @value2
Każde podzapytanie użyje odpowiedniego indeksu, a następnie wyniki zostaną scalone.
Jednak w prostych przypadkach MySQL może automatycznie wykonać to przekształcenie i robi to w zapytaniu. To właśnie Using union
w EXPLAIN
wyjście oznacza.