Mysql
 sql >> Base de données >  >> RDS >> Mysql

Performances MySQL dans l'opérateur OR

Parfois, MySQL a du mal à optimiser OR requêtes. Dans ce cas, vous pouvez le diviser en deux requêtes en utilisant UNION :

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

Chaque sous-requête utilisera l'index approprié, puis les résultats seront fusionnés.

Cependant, dans des cas simples, MySQL peut effectuer automatiquement cette transformation, et il le fait dans votre requête. C'est ce que Using union dans le EXPLAIN moyens de sortie.