У меня есть следующая таблица:
create table stuff (
id mediumint unsigned not null auto_increment primary key,
title varchar(150) not null,
link varchar(250) not null,
time timestamp default current_timestamp not null,
content varchar(1500)
);
Если я ОБЪЯСНУЮ запрос
select id from stuff order by id;
тогда он говорит, что использует их первичный ключ в качестве индекса для упорядочения результатов. Но с этим запросом:
select id,title from stuff order by id;
EXPLAIN говорит, что нет возможных ключей, и обращается к файловой сортировке.
Почему это? Разве данные определенной строки не хранятся вместе в базе данных? Если он может упорядочить результаты с использованием индекса, когда я запрашиваю только идентификатор, то почему добавление другого столбца в запрос имеет значение? Первичный ключ уже идентифицирует строку, поэтому я думаю, что он должен использовать первичный ключ для упорядочивания и во втором случае.
Можете ли вы объяснить, почему это не так?