대신 인덱스의 기본 키를 사용MySQL은 내가 몇 백만 행이 꽤 큰 테이블이
SELECT id, countrycode, status, flag_cc FROM table WHERE ID>=200000 AND countrycode=3 AND status=1 AND flag_cc=0
그래서 : 나는 다음과 같은 SQL 문을 시도했지만 그것은 아주 느렸다
ID (primary)
countrycode
status
flag_cc
ADD INDEX myindex(id, countrycode, status, flag_cc)
가 그럼 난 조회 : 나는 그 쿼리를 고정하기 위해 인덱스를 추가하는 것은 좋은 생각 일 것이다라고 생각했다
EXPLAIN SELECT id, countrycode, status, flag_cc FROM table WHERE ID>=200000 AND countrycode=3 AND status=1 AND flag_cc=0
하지만 mysql은 내 키 대신 기본 키를 사용하려고합니다. 그래서 FORCE INDEX를 사용하여 기본 키를 내 키와 비교했습니다. 슬프게도 기본 키는 훨씬 빠릅니다.
어떻게 될 수 있습니까? 기본 키가 너무 느린 경우에도 쿼리를 최적화 할 수 있습니까?
시도는 키 primay 3 별도의 키없이 복합 키를 추가. –
기본 키가없는 compund key를 추가하면 기본 키가 여전히 사용됩니다. – Gio
색인 (countrycode, status, flag_cc, id)을이 순서대로 사용해보십시오. 상수를 먼저 찾을 때 더 빠를 수도 있습니다. – noz