배경: 그룹의 친구가 in을 색인화할 수 있는지 여부는 in에 있는 문자열 수와 관련이 있다고 말했습니다. 문자열의 길이를 초과하면 색인이 사용되지 않습니다.
사실 이러한 인식은 잘못된 것입니다. 많은 재게시글에 모두가 속아왔습니다! ! !
in의 색인 여부에 실제로 영향을 미치는 것은 in의 검증된 데이터 비율에 따라 달라지며, 이는 mysql의 색인 여부에 영향을 미칩니다!
이전 테스트에서는 데이터의 40% 이상이 일치하는 것으로 나타났습니다.(이 임계값은 반드시 40%는 아니지만 이전 테스트에서는 40% 정도였으며 인덱스는 사용되지 않았습니다. 이는 mysql 버전의 영향도 받습니다. ) 그 이후에는 인덱싱 없이 전체 테이블을 사용하기 시작했습니다.
연습:
그림 1:
그림 2:
그림 3:
그림 4:
그림 5:
위 그림과 같이 테이블 반환과 인덱스 덮어쓰기의 영향을 고려하지 않은 경우, in에서 일치하는 데이터가 차지하는 경우 전체 테이블 데이터가 많으면 전체 테이블 스캔이 시작됩니다.
또한 특별 지침
1. in에 단일 값이 있는 경우 mysql은 자동으로 =로 최적화되므로 인덱스는 계속 사용됩니다.
2. 갈 필요가 없습니다 테이블을 반환할 때 포함 인덱스가 사용됩니다
추천 학습: "MySQL 비디오 튜토리얼"
위 내용은 더 이상 MySQL의 사용법을 오해하지 마세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!