programing

MySQL에서 eq_ref 및 ref 유형은 무엇을 의미합니까?

padding 2023. 8. 31. 23:41
반응형

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

반응형