>  기사  >  mysql의 가장 왼쪽 원칙은 무엇을 의미합니까?

mysql의 가장 왼쪽 원칙은 무엇을 의미합니까?

百草
百草원래의
2023-07-11 11:18:243350검색

MySQL의 가장 왼쪽 원칙은 쿼리 과정에서 인덱스의 가장 왼쪽 열이 필터링에 최대한 참여해야 한다는 의미입니다. 인덱스 사용의 효율성을 극대화하고 쿼리 속도를 높일 수 있는 데이터베이스 인덱스 최적화의 핵심 아이디어 중 하나입니다. 가장 왼쪽 원칙은 전체 테이블 스캔과 같은 비효율적인 작업을 방지하고, 데이터베이스가 대규모 데이터 세트를 더 빠르게 처리할 수 있도록 하며, 데이터베이스 테이블 구조 및 인덱스를 더 효과적으로 설계하는 데 도움이 되며, 시스템 성능을 향상시킵니다.

mysql의 가장 왼쪽 원칙은 무엇을 의미합니까?

이 튜토리얼의 운영 체제: Windows 10 시스템, mysql 버전 8.0, Dell G3 컴퓨터.

MySQL 가장 왼쪽 원칙은 데이터베이스 인덱스 최적화의 핵심 아이디어 중 하나입니다. 쿼리 프로세스 중에 인덱스의 가장 왼쪽 열("접두사"라고도 함)을 최대한 필터링에 참여시키는 것을 의미합니다. 이를 통해 인덱스 사용 효율성을 극대화하고 쿼리 속도를 높일 수 있습니다.

다음은 예시입니다.

SELECT * FROM table_name WHERE column1 = 'value1' AND column2 = 'value2'

이 쿼리에서는 공동 인덱스(column1,column2)가 있는 경우 가장 왼쪽 원칙에 따라 필터링에 컬럼1이 먼저 사용됩니다. 컬럼1의 값이 성공적으로 일치하는 경우에만 추가 필터링을 위해 컬럼2의 값이 참조됩니다.

그러나 쿼리에 컬럼 2만 있고 컬럼 1은 없으면 결합 인덱스가 작동하지 않습니다.

가장 왼쪽 원칙은 전체 테이블 스캔과 같은 비효율적인 작업을 방지하여 데이터베이스가 대규모 데이터 세트를 더 빠르게 처리할 수 있도록 도와줍니다. 동시에 데이터베이스 테이블 구조와 인덱스를 더 잘 설계하고 시스템 성능을 향상시키는 데도 도움이 됩니다.

가장 왼쪽 일치 원칙

MySQL의 인덱스는 특정 순서로 여러 열을 참조할 수 있습니다. 이러한 종류의 인덱스를 공동 인덱스라고 합니다.

우리 모두는 그렇습니다. 인덱스의 최하위 레이어가 B+ 트리이므로 당연히 조인트 인덱스는 여전히 B+ 트리이지만, 조인트 인덱스의 키 값의 개수는 하나가 아니라 여러 개입니다. B+ 트리는 하나의 값을 기준으로만 구축할 수 있으므로 데이터베이스는 결합 인덱스의 가장 왼쪽 필드를 기반으로 B+ 트리를 구축합니다.

예: (a, b)의 결합 인덱스를 생성하면 해당 인덱스 트리는 다음과 같습니다. a의 값은 1, 1, 2, 2, 3, 3입니다. , b의 값은 순서대로 1, 2, 1, 4, 1, 2이다. 따라서 b = 2와 같은 쿼리 조건에는 인덱스를 사용할 방법이 없습니다. 왜냐하면 결합 인덱스는 먼저 a를 기준으로 정렬되고 b는 정렬되지 않기 때문입니다.

동시에, a 값이 동일할 때 b 값이 순서대로 정렬되지만 이 순서는 상대적이라는 것도 알 수 있습니다. 따라서 범위 쿼리가 발생하면 가장 왼쪽 일치 원칙이 중지되고 나머지 필드는 인덱스를 사용할 수 없습니다. 예를 들어, a = 1 및 b = 2인 경우 a 및 b 필드 모두 인덱스를 사용할 수 있습니다. 왜냐하면 a 값이 결정될 때 b는 상대적으로 정렬되기 때문이고, a>1 및 b=2인 경우 a 필드는 인덱스와 일치할 수 있지만 b 값 아니요. a의 값은 범위이고 b는 이 범위에서 순서가 지정되지 않기 때문입니다.

장점: 가장 왼쪽 접두사 원칙을 활용하면 쿼리 효율성도 크게 향상시킬 수 있으며 일반적인 MySQL 성능 최적화 방법입니다.

위 내용은 mysql의 가장 왼쪽 원칙은 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.