1
하나의 기본 키가 들어있는 테이블이 있습니다. 내가높은 한계에서 Mysql 인덱스가 작동하지 않습니다.
이 아이디 ASC의 LIMIT에 의해 뉴스 ORDER로부터 SELECT *를 EXPLAIN 실행하면 29
MySQL은 반환
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE news ALL NULL NULL NULL NULL 640 Using filesort
그러나 에 의해 아이디 ASC LIMIT에 의해 뉴스 ORDER * FROM 을 선택 EXPLAIN 28 결과는
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE news index NULL PRIMARY 4 NULL 28
SHOW INDEX FROM news;
Table, Non_unique, Key_name, Seq_in_index, Column_name, Collation, Cardinality, Sub_part, Packed, Null, Index_type, Comment
'news', 0, 'PRIMARY', 1, 'id', 'A', 640, , '', '', 'BTREE', ''
'news', 1, 'tarix', 1, 'tarix', 'A', 106, , '', '', 'BTREE', ''
'news', 1, 'yayindil', 1, 'yayin', 'A', 3, , '', '', 'BTREE', ''
'news', 1, 'yayindil', 2, 'dil', 'A', 7, , '', '', 'BTREE', ''
다른 테이블에서 확인한 결과, 한계 4000에서도 잘 작동합니다. 무엇이 잘못 되었나요? 인덱스가 29 개 미만인 이유는 무엇입니까?
테이블에 몇 행이 있습니까? –
테이블에 640 개의 행이 있습니다. – Huseyin
두 테이블 모두에서 인덱스가 비슷합니까? 'show index from news' 출력을보십시오. – Niloct