>  기사  >  데이터 베이스  >  속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석

속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석

WBOY
WBOY앞으로
2023-06-02 13:49:061235검색

결론부터 먼저 말씀드리겠습니다

Where와 등가 쿼리의 조인 속도는 기본적으로 동일하고, 비동등 쿼리의 조인 속도는 대체적으로 느립니다.

실험 1: 같지 않은 레코드가 없습니다

member와 member_class라는 두 개의 테이블이 있습니다. 데이터 구조는 아래와 같습니다. 여기서 member.class_id와 member_class.id는 관련 필드입니다

속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석

속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석

우리는 두 테이블에 각각 200,000개의 데이터가 기록되었으며, 그 중 member.class_id가 member_class.id에 존재해야 합니다. (동등한 레코드는 없습니다.)

테이블 전체를 확인하세요

속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석

더 정확한 실험을 위해, 쿼리 결과 20회:

쿼리 시간(초):

0.253, 0.256, 0.256, 0.252, 0.257, 0.252, 0.260, 0.265, 0.253, 0.252, 0.254 , 0.257, 0.254, 0.257 , 0.243, 0.250, 0.252, 0.252, 0.255, 0.284

각각 쿼리 시간(초):

0.247, 0.260, 0.250, 0.246, 0.271, 4 7, 0.251, 0.247, 0.243, 0.247, 0.247 , 0.245, 0.249, 0.246, 0.247, 0.253, 0.248, 0.254, 0.251, 0.247, 0.250

쿼리의 평균은 0.2557초이고, 쿼리의 평균은 0.2498초이며, 그 차이는 거의 같습니다. 무시할 수 있는.

실험 2: 같지 않은 레코드가 있습니다

member_class.id에 class_id의 20%만 존재하는 새 member_v2 테이블을 생성합니다.

아래와 같이:

속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석

전체 테이블 테스트를 계속 쿼리합니다. :

속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석

LEFT JOIN에 동일하지 않은 레코드가 많기 때문에 NULL 값이 많이 나타나므로 중간 테이블의 쿼리 효율성이 떨어집니다. WHERE 쿼리를 선택하면 쿼리 중에 동일하지 않은 레코드를 자동으로 필터링할 수 있습니다.

그래서 쿼리 시간도 빨라졌습니다.

위 내용은 속도 소스 코드에 대한 MySQL 다중 테이블 연관 비교 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제