집 >데이터 베이스 >MySQL 튜토리얼 >WHERE 절 조건 순서가 MySQL 쿼리 성능에 어떤 영향을 줍니까?
WHERE 절 조건 순서가 MySQL 성능에 미치는 영향
여러 조건으로 복잡한 쿼리를 작성할 때 해당 조건의 순서가 잠재적으로 영향을 미칠 수 있습니다. MySQL의 성능. 회사 ID로 필터링하는 등 특정 조건을 사용하면 검사되는 행 수를 크게 줄일 수 있습니다.
질문:
조건 순서가 다른 다음 두 쿼리를 고려해 보세요.
쿼리 1:
SELECT * FROM clients WHERE (firstname LIKE :foo OR lastname LIKE :foo OR phone LIKE :foo) AND (firstname LIKE :bar OR lastname LIKE :bar OR phone LIKE :bar) AND company = :ugh
쿼리 2:
SELECT * FROM clients WHERE company = :ugh AND (firstname LIKE :foo OR lastname LIKE :foo OR phone LIKE :foo) AND (firstname LIKE :bar OR lastname LIKE :bar OR phone LIKE :bar)
이러한 조건의 순서가 MySQL의 효율성에 영향을 미치나요?
답변:
WHERE 절 조건의 순서가 실제로 영향을 미칠 수 있습니다. 특정 상황에서의 MySQL 성능. 다음 예를 고려하십시오.
쿼리 3:
SELECT myint FROM mytable WHERE myint >= 3 OR myslowfunction('query #1', myint) = 1;
쿼리 4:
SELECT myint FROM mytable WHERE myslowfunction('query #2', myint) = 1 OR myint >= 3;
이러한 쿼리 간의 유일한 차이점은 OR 조건의 피연산자의 순서입니다. . "myslowfunction"은 의도적으로 1초 동안 지연시키는 함수입니다. 쿼리 실행 결과는 다음과 같습니다.
항상 참이 아닌 피연산자가 있는 OR 조건의 왼쪽에 느린 함수가 나타날 경우 함수가 더 자주 실행되는 것을 보여줍니다.
결론:
요약하면 WHERE 절의 조건 순서는 다음과 같은 이유로 MySQL 성능에 영향을 미칠 수 있습니다. 단락. 성능을 최적화하려면 검사되는 행 수를 크게 줄일 것으로 예상되는 조건(예: 회사 ID)을 조건 체인에 최대한 빨리 배치하세요.
위 내용은 WHERE 절 조건 순서가 MySQL 쿼리 성능에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!