Таблица имеет 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