sql >> Base de Datos >  >> RDS >> Mysql

Rendimiento de MySQL en el operador OR

A veces, MySQL tiene problemas para optimizar OR consultas En este caso, puede dividirlo en dos consultas usando UNION :

SELECT * FROM relationship WHERE e_e_oid = @value1
UNION
SELECT * FROM relationship WHERE e_e_oid2 = @value2

Cada subconsulta utilizará el índice apropiado y luego los resultados se fusionarán.

Sin embargo, en casos simples, MySQL puede realizar automáticamente esta transformación, y lo está haciendo en su consulta. Eso es lo que Using union en el EXPLAIN medios de salida.