MySQL에서 eq_ref 및 ref 유형은 무엇을 의미합니까?
SQL 쿼리 앞에 "explain" 키워드를 붙이면 몇 개의 열이 있는 테이블이 나타납니다."유형" 열이 무엇인지 알려주시기 바랍니다.무엇인가.eq_ref
그리고.ref
그런 맥락에서 의미가 있습니다.
제가 설명해 보겠습니다...
eq_ref – 테이블이 두 개 있다고 가정합니다.열(id, 텍스트)이 있는 표 A. 여기서 id는 기본 키입니다.표 B에 동일한 열(id, 텍스트)이 있습니다. 여기서 id는 기본 키입니다.표 A에는 다음과 같은 데이터가 있습니다.
1, Hello
2, How are
표 B에는 다음과 같은 데이터가 있습니다.
1, world!
2, you?
eq_ref를 A와 B 사이의 JOIN으로 상상합니다.
select A.text, B.text where A.ID = B.ID
테이블 A에서 스캔한 각 행에 대해 테이블 B에서 조인 조건을 충족하는 행이 하나만 있을 수 있으므로 이 조인은 매우 빠릅니다.하나, 둘 이상은 안 돼요.그것은 B.id 이 고유하기 때문입니다.
여기 있습니다: 서버 측의 처리를 보여주는 유사 코드입니다.
foreach (rowA in A)
{
if (existsInBRowWithID(rowA.id)
{
addToResult(rowA.text, getRowInBWithID(rowA.id).text);
}
}
ref - 이제 열(id, 텍스트)이 있는 다른 테이블 C를 상상해 보십시오. 열에는 인덱스가 있지만 고유하지는 않습니다.표 C에는 다음과 같은 데이터가 있습니다.
1, John!
1, Jack!
A와 C 사이의 ref를 JOIN이라고 상상해 보십시오.
select A.text, C.text where A.ID = C.ID
다음은 서버 측 처리를 보여주는 유사 코드입니다.
foreach (rowA in A)
{
foreach (rowC in C)
{
if (rowA.id == rowC.id)
{
addToResult(rowA.text, rowC.text);
}
}
}
테이블 A에서 스캔한 각 행에 대해 테이블 C에서 조인 조건(내포 루프)을 충족할 수 있는 여러 행이 있기 때문에 이 조인은 이전 조인만큼 빠르지 않습니다.그것은 C 때문입니다.ID가 고유하지 않습니다.
"유형"은 요청에서 작성된 가입 유형을 나타냅니다.가장 좋은 것부터 가장 나쁜 것까지, 다음은 목록입니다.
- 시스템.
- 컨스
- eq_ref
- 심판을 보다
- 범위
- 색인을 달다
- 모든.
자세한 설명은 MySQL 문서 http://dev.mysql.com/doc/refman/5.0/en/explain-output.html 에서 확인할 수 있습니다.
언급URL : https://stackoverflow.com/questions/4508055/what-does-eq-ref-and-ref-types-mean-in-mysql-explain
'programing' 카테고리의 다른 글
원의 애니메이션 그리기 (0) | 2023.08.31 |
---|---|
Oracle 데이터베이스에서 Java 저장 프로시저를 사용해야 하는 경우... 단점은 무엇입니까? (0) | 2023.08.31 |
스파이피를 사용하여 2차원 보간을 수행하려면 어떻게 해야 합니까? (0) | 2023.08.31 |
어떻게 하면 신속하게 새 라인을 만들 수 있습니까? (0) | 2023.08.31 |
Oracle 이벤트 로그는 어디에 있습니까? (0) | 2023.08.31 |