조인 유형
왼쪽 조인, 왼쪽 테이블을 구동 테이블로 사용하고 왼쪽 테이블을 결과 집합의 기반으로 사용하여 오른쪽 테이블의 데이터를 결과 집합에 연결
right Join, 오른쪽 테이블을 구동 테이블로 사용, 오른쪽 테이블을 결과 집합의 기초로 사용, 왼쪽 테이블의 데이터를 결과 집합에 연결
inner Join , 결과 집합은 두 테이블의 교집합을 취합니다
완전 조인, 결과 집합은 두 테이블의 합집합입니다.
-
mysql에는 완전 조인이 없으며 합집합이 대체됩니다.
차이점 Union과 Union 사이의 모든 것은 Union이 중복 항목을 제거한다는 것입니다
교차 조인 데카르트 곱
-
where 조건이 사용되지 않으면 결과 집합은 연관된 두 테이블 행의 곱입니다
과의 차이점은
cross Join이 결과 세트를 생성할 때 결과 세트가 on 조건에 따라 필터링된다는 것입니다 - straight_join
-
SQL 순서에 따라 드라이버 테이블을 엄격하게 지정합니다.
왼쪽 테이블은 드라이버입니다
조인 원칙
이 문장은 다음과 같이 다시 작성할 수 있습니다. 본질은 중첩 루프의 작동으로 이해될 수 있습니다. 여기서 외부 for 루프는 테이블을 구동하고 내부 for 루프는 구동 테이블이다. 구성된 데이터를 연결하는 전략에 따라 3가지 알고리즘으로 나눌 수 있다.
- Simpe Nested-Loop Join
- 예를 들어 테이블 A와 테이블 B가 있고 두 테이블이 JOIN이면 테이블 A의 연결 조건을 사용하여 테이블 B를 하나씩 반복하여 다음과 일치합니다. 테이블 A와 테이블 B의 ID가 동일합니다. 결과 세트에 넣는 것이 효율성이 가장 낮습니다.
- Index Nested-Loop Join
- 실행 프로세스(디스크 스캔)
-
테이블 t1에서 데이터 R의 행을 읽습니다. 데이터 행 R에서 테이블 t2의 a 필드를 가져옵니다
찾기 위한 트리 검색
테이블 t2의 조건을 충족하는 행을 꺼내고 결과 집합의 일부로 R을 포함하는 행을 형성합니다.
테이블 t1의 끝에서 루프가 끝날 때까지 1~3단계를 반복합니다. - R의 각 행에 대해 트리 검색 프로세스를 사용하여 a 필드를 기반으로 테이블 t2를 검색합니다.
- Block Nested-Loop Join
-
mysql은 루프 수를 줄이기 위해
join buffer r이라는 버퍼를 사용합니다. 이 버퍼는 기본적으로 256KB이며 'join_%'와 같은 show 변수를 통해 볼 수 있습니다. - 구체적인 방법은 첫 번째 테이블의 정규화된 열을 한 번에 버퍼에 쿼리한 다음 두 번째 테이블을 한 번 트래버스하여 버퍼에 있는 모든 값과 하나씩 비교하고 비교 결과를 추가하는 것입니다. 결과 집합에
-
조인 버퍼는 JOIN 유형이 ALL, index, rang 또는 index_merge인 경우에만 사용됩니다. explain을 통해 SQL 쿼리 유형을 볼 수 있습니다.
- 조인 최적화
- 조인 알고리즘을 최적화하기 위해 인덱스 중첩 루프 조인 알고리즘을 사용하여 연결 필드에 인덱스 필드를 생성합니다.
- 데이터 볼륨이 작은 테이블을 사용하여 테이블을 구동합니다. 대용량 데이터
- 조인 버퍼 크기를 늘립니다. (한 번에 더 많은 데이터를 캐시할수록 외부 테이블의 순환 횟수가 줄어듭니다.)
- 조인의 암시적 변환 및 문자 인코딩에 주의하세요. 인덱스 실패를 방지하기 위한 필드
위 내용은 MySQL Join의 사용 원칙은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
