차이점: 1. 상위 쿼리 테이블과 하위 자체 쿼리 테이블을 통해 해시 연결 쿼리를 수행하거나, 상위 쿼리 테이블에 대해 루프를 수행한 후 하위 쿼리 테이블을 쿼리합니다. 2. 인덱스가 없는 경우; 또는 기본 키, in 또는 or 뒤에 있는 데이터의 양이 증가함에 따라 or의 실행 효율성은 크게 떨어지지만 in의 실행 효율성은 크게 떨어지지 않습니다.
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
in and or in mysql의 차이점은 무엇인가요?
데이터 비교의 경우 수천만 개의 데이터
in and or in sql 문의 차이점은 다음과 같습니다: 다른 작업, 다른 적합성 및 다른 실행 능률.
1. 다양한 작업
1. in: in은 상위 쿼리 테이블과 하위 자체 쿼리 테이블 간의 해시 연결입니다.
2. or: or는 상위 쿼리 테이블을 반복하고 루프가 반복될 때마다 하위 쿼리 테이블을 쿼리하는 것입니다.
2. 다른 5261에 적합합니다.
1. in: in은 상위 쿼리 테이블보다 하위 쿼리 테이블에 더 많은 데이터가 있는 상황에 적합합니다.
2. or: or는 하위 쿼리 테이블의 데이터가 상위 쿼리 테이블보다 적은 상황에 적합합니다.
3. 실행 효율성의 차이
1. in: 인덱스가 없으면 in 뒤에 있는 데이터의 양이 늘어나도 in의 실행 효율성은 크게 떨어지지 않습니다.
2. 또는: 인덱스가 없는 경우 또는 뒤에 있는 데이터의 양이 증가함에 따라 또는의 실행 효율성이 크게 감소합니다.
in과 or가 위치한 컬럼에 인덱스나 기본키가 있는 경우 or와 in 사이에는 차이가 없고, 실행 계획이나 실행 시간도 거의 동일합니다.
in 및 or이 위치한 열에 인덱스가 없으면 성능 차이가 엄청납니다. 인덱스가 없는 경우 in or or 뒤에 있는 데이터의 양이 많아질수록 in의 효율성은 크게 떨어지지 않지만, 레코드 수가 늘어날수록 or의 성능은 크게 떨어지게 됩니다
따라서 포기할 때와 언제 효율성을 정의하거나 열이 인덱싱되었는지 또는 기본 키인지 여부와 같은 조건을 추가해야 합니다. 인덱스나 기본키가 있으면 성능차이가 없고, 인덱스가 없으면 성능차이가 별로 없습니다!
추천 학습: mysql 비디오 튜토리얼
위 내용은 mysql과 in과 mysql의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!