> 데이터 베이스 > MySQL 튜토리얼 > EXISTS 하위 쿼리: SELECT 1 또는 SELECT * – 성능에 중요한가요?

EXISTS 하위 쿼리: SELECT 1 또는 SELECT * – 성능에 중요한가요?

Barbara Streisand
풀어 주다: 2025-01-15 20:38:13
원래의
319명이 탐색했습니다.

EXISTS Subqueries: SELECT 1 or SELECT * – Does it Matter for Performance?

*EXISTS 하위 쿼리: SELECT 1 대 SELECT **

SQL에서 EXISTS 하위 쿼리를 사용할 때 일반적인 질문은 다음과 같습니다. 하위 쿼리에 SELECT 1 또는 SELECT *를 사용해야 합니까?

*SELECT 대 SELECT 1**

과거에는 EXISTS 하위 쿼리에서 SELECT *보다 SELECT 1이 더 효율적이라고 생각되었습니다. 그러나 이는 사실이 아니다. SQL Server는 하위 쿼리의 SELECT 목록에 지정된 열에 관계없이 시스템에 NO DATA를 반환하도록 EXISTS 검사를 최적화합니다.

마이크로소프트의 관점

Microsoft에 따르면 "EXISTS에 의해 도입된 하위 쿼리의 SELECT 목록에는 거의 항상 별표(*)가 포함되어 있습니다. 지정된 조건을 만족하는 행이 있는지 테스트하는 것이므로 열 이름을 나열할 이유가 없습니다. 하위 쿼리에서 "

데모

이를 확인하려면 다음 쿼리를 고려하세요.

<code class="language-sql">SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable 
WHERE a_valid_clause )</code>
로그인 후 복사

SELECT *가 선택한 열에 대해 실제로 작업을 수행하면 쿼리에서 0으로 나누기 오류가 발생합니다. 그러나 그렇지 않습니다. 이는 하위 쿼리의 SELECT 목록이 무시되고 행의 존재를 확인하는 데만 사용됨을 나타냅니다.

SQL 표준

SQL 표준은 이 보기도 지원합니다. "''이 에 직접 포함된 에만 포함된 경우 ''은 A와 동일합니다. <리터럴>에 대한 <값 표현>

결론

요약하면 EXISTS 하위 쿼리에서 SELECT 1 또는 SELECT *를 사용해도 성능 차이가 없습니다. 따라서 더 읽기 쉽고 코딩 스타일과 일치하는 옵션을 선택하는 것이 좋습니다.

위 내용은 EXISTS 하위 쿼리: SELECT 1 또는 SELECT * – 성능에 중요한가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿