sql >> Database teknologi >  >> RDS >> Mysql

MySQL-ydelse i OR-operatør

Nogle gange har MySQL problemer med at optimere OR forespørgsler. I dette tilfælde kan du dele det op i to forespørgsler ved hjælp af UNION :

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

Hver underforespørgsel vil gøre brug af det relevante indeks, og derefter vil resultaterne blive flettet.

Men i simple tilfælde kan MySQL automatisk udføre denne transformation, og det gør det i din forespørgsel. Det er hvad Using union i EXPLAIN output betyder.



  1. SQL-udfordring/puslespil:Hvordan flettes indlejrede områder?

  2. hvordan man ved, hvor mange rækker der vil blive påvirket, før man kører en forespørgsel i Microsoft SQL Server 2008

  3. Hvorfor kan jeg ikke ekskludere afhængige kolonner fra "GROUP BY", når jeg samler med en nøgle?

  4. Sådan grupperes kontinuerlige områder ved hjælp af MySQL