0
인덱스가있는 float 필드가 average_rating
인 titles
테이블이 약 14000 개의 레코드로 구성되어 있습니다. 그러나 가장 높은 average_rating
의 처음 48 개 레코드를 가져 오려고하면 인덱스가 작동하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?float 필드의 인덱스가 무시 된 것 같습니다.
mysql> explain SELECT * FROM `titles` WHERE (average_rating is not null) \
ORDER BY average_rating desc LIMIT 0, 48\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: titles
type: range
possible_keys: index_titles_on_average_rating
key: index_titles_on_average_rating
key_len: 5
ref: NULL
rows: 14114
Extra: Using where
1 row in set (0.00 sec)
나는 이해의 주인에게서 멀다, 나는 결코 MySQL을 사용한 적이 없다. 그러나 그것이 인덱스를 사용하고 있다고 말하는 것은 아닙니까? 그렇지 않다면,'key : index_titles_on_average_rating' 란 무엇을 의미합니까? –
@dan : 색인을 사용하지 않는다고 생각하는 이유는 무엇입니까? –
그것은 mysql이 14114 행을 읽는다 고 말합니다. 내가 48 줄을 요구할 때 이것이 옳은가? – dan