Почему индекс сделал этот запрос медленнее?

Таблица имеет 1 500 000 записи, у 1 250 000 из них есть поле = 'z'.
Я должен выбрать случайный не 'z' поле.

$random = mt_rand(1, 250000);  
$query = "SELECT field FROM table WHERE field != 'z' LIMIT $random, 1";

Это работает хорошо.

Затем я решил оптимизировать его и индексированный field в таблице.

Результат был странным - это было медленнее ~3 раза. Я протестировал его.
Почему это медленнее? Разве такая индексация не, должен сделать его быстрее?

мой ISAM

explain with index:  
id  select_type  table  type  possible_keys  key   key_len  ref  rows     Extra  
1   SIMPLE       table  range field          field 758      NULL 1139287  Using  

explain without index:  
id  select_type  table  type  possible_keys  key  key_len  ref  rows     Extra  
1   SIMPLE       table  ALL   NULL           NULL NULL     NULL 1484672  Using where
5
задан Craig Trader 31 July 2010 в 08:20
поделиться