2009-12-23 58 views
0

我有一個titles約14000記錄的表,其中有一個浮點字段average_rating,這是索引。但是,當我嘗試獲得最高的average_rating的48條記錄時,該索引不起任何作用。我究竟做錯了什麼?浮動字段上的索引似乎被忽略

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) 
+0

我遠離理解大師解釋說,我從來沒有用過MySql。但是,這不是說它*是使用索引嗎?如果不是,讀取'key:index_titles_on_average_rating'的行是什麼意思? –

+0

@dan:是什麼讓你相信索引沒有被使用? –

+0

它說mysql會讀取14114行。當我只是要求48行時,這是否正確? – dan

回答

0

我很確定解釋只是忽略了LIMIT子句。