MySQL에서 두 개의 키 검색하기
MySQL에서 두 개의 키를 대상으로 검색을 수행하려면 최적화된 단일 키에 OR 연산자를 사용하거나, 마찬가지로 잘 최적화된 AND 연산자를 활용할 수 있습니다.
그렇다면 서로 다른 두 개의 키를 OR 연산과 결합하여 검색하려면 어떻게 해야 할까요? 아래 예시 쿼리를 살펴보겠습니다.
SELECT field1_index, field2_index FROM tableName
WHERE field1_index = '1' OR field2_index = '1'
위 쿼리는 이미 최적화된 형태입니다. 하지만 더 효율적인 방법으로 UNION을 사용하는 방법도 있습니다. UNION은 두 개의 독립적인 SELECT 문의 결과를 하나로 합쳐주는 역할을 합니다.
이 방식의 장점은 각각의 SELECT 문이 오직 하나의 키만 검색한다는 점입니다. 단일 키 검색은 MySQL이 인덱스를 효율적으로 활용할 수 있어 쿼리 성능 최적화에 유리합니다.
UNION을 활용한 쿼리 예시
SELECT field1_index, field2_index
FROM tableName WHERE field1_index = '1'
UNION
SELECT field1_index, field2_index
FROM tableName WHERE field2_index = '1';
정리하면, 두 개의 서로 다른 키에 대한 OR 조건 검색이 필요할 때는 UNION을 사용해 각 키별로 단일 키 검색을 수행한 뒤 결과를 병합하는 것이 성능 면에서 더 효과적일 수 있습니다.