MySQL 인덱스 쿼리 효율성 문제 정보
世界只因有你
世界只因有你 2017-06-22 11:54:39
0
4
1089
으아악

두 개의 SQL 문, 후자의 런타임은 실행 시간을 의미하며 데이터 볼륨은 150W입니다

필드 설명 zhuanid는 숫자 값, webid는 숫자 값, 비어 있으면 0 또는 1

첫 번째 문장에서 SQL이 사용하는 공통 인덱스는 zhuanid webidempty에 대한 인덱스 집합입니다.
두 번째 문장에서 SQL에서 사용하는 인덱스는 zhuanid webidempty에 대한 인덱스 집합입니다

첫 번째 문장의 계산이 왜 이렇게 오래 걸리나요? 두 번째 문장의 복잡한 쿼리에 비해 시간이 매우 짧습니다

世界只因有你
世界只因有你

모든 응답(4)
ringa_lee

첫번째 문장은 sql,limit 1
두번째 문장은 sql,limit0,10
150만개 항목을 카운트하라고 하셨습니다.... 처음 10개 항목을 확인하는 것보다 더 빨리 확인하고 싶으신가요?

洪涛

내 추측: 인덱스 필드가 null을 허용하지 않도록 설정되어 있지 않아 count(*)가 인덱스를 사용하지 않습니다.

게다가 이 두 문 자체는 동일하지 않습니다. 첫 번째는 전체 테이블에 대한 것이지만 두 번째는 비교가 없는 것 같습니다

曾经蜡笔没有小新

실행 계획을 살펴봐야 합니다. 첫 번째 SQL 결과 집합이 매우 큰 경우 조건을 충족하는 모든 레코드를 스캔해야 합니다. 이 경우 두 번째 SQL은 시간 ID 인덱스만 사용하면 됩니다. 조건에 맞는 10개의 레코드를 찾으면 더 빠릅니다. 또한 zhuanid webidempty의 결합 인덱스는 zhuanid 열과 webid의 범위 부분만 사용하므로 인덱스 순서를 zhuanidempty webid로 수정할 수 있습니다.

为情所困

첫 번째 SQL이 실행된 후 결과가 Cache에 저장됩니다.

두 번째 SQL의 실행은 첫 번째 SQL의 Cache에 따라 달라지므로 더 빠릅니다(실제로 두 번째 SQL은 정렬을 사용하므로 속도가 느려질 것입니다).

포스터는 첫 번째 SQL이 실행된 후에 실행될 수 있습니다

으아악

캐시를 재설정한 다음 두 번째 SQL을 실행하면 결과가 다릅니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿