У меня есть таблица, содержащая один первичный ключ.
Когда я бегу
ОБЪЯСНИТЬ ВЫБРАТЬ * ИЗ НОВОСТЕЙ ЗАКАЗАТЬ ПО ИДЕНТИФИКАТОРУ ASC ПРЕДЕЛ 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
Но ОБЪЯСНИТЬ ВЫБРАТЬ *
ИЗ новостей
ЗАКАЗАТЬ ПО ID ASC
LIMIT 28
возвращается
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE news index NULL PRIMARY 4 NULL 28
ПОКАЗАТЬ ИНДЕКС ИЗ новостей;
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 ограничений используют индексы?