현재 대부분의 데이터베이스 시스템과 파일 시스템은 B-Tree 또는 그 변형 B+Tree를 인덱스 구조로 사용합니다.
1. B+ 트리는 루트 노드에서 각 리프 노드까지의 높이 값이 1을 초과하지 않으며, 동일한 레벨의 노드를 연결하는 포인터가 있습니다.
2. tree의 경우 루트 노드에서 리프 노드까지의 검색 효율성은 기본적으로 동일하며 큰 변동이 없습니다. 또한 인덱스 기반의 순차 검색 중에 양방향 포인터를 사용하여 왼쪽과 오른쪽으로 빠르게 이동할 수도 있습니다. 이는 매우 효율적입니다.
mysql에서는 인덱스를 사용하면 효과적으로 쿼리 효율성을 높일 수 있지만 실제 프로젝트에서는 where 조건에 인덱스를 추가해도 인덱스가 사용되지 않는 경우가 있습니다.
예: where id=3 and price>100; //ID가 3,100위안 이상인 상품 조회(id,price는 각각 인덱스가 추가됨)
오해: id,price 중 하나만 사용할 수 있는 것은 독립된 인덱스이므로 이전 인덱스만 사용할 수 있습니다. 동시에 .
조인트 인덱스: 여러 열에 동시에 인덱스를 생성한 후 인덱스를 사용하기 전에 왼쪽 접두사 원칙을 충족해야 합니다.
인덱스(a, b, c)를 예로 들어 보겠습니다. (순서에 따라 다름)
명령문 | 인덱스 사용 여부
where a=3 예, a 열만 사용됩니다
where a=3 및 =5 예, a 열이 사용됩니다
where a=3 및 b=4 및 c=5 예, abc가 사용됩니다
여기서 b=3 또는 c=4입니다. 아니요. 왜냐하면 a가 건너뛰기 때문입니다
여기서 a=3 및 c =4 a는 인덱스를 사용하고 c는 사용할 수 없습니다
여기서 a=3이고 b는 'hello%'와 같이 a가 사용되고, 부분 b가 사용됩니다
위 내용은 mysql에 여러 btree 인덱스를 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!