Этот вопрос относится к этому .
У меня есть таблица со следующей структурой:
CREATE TABLE mydatabase.page (
pageid int(10) unsigned NOT NULL auto_increment,
sourceid int(10) unsigned default NULL,
number int(10) unsigned default NULL,
data mediumtext,
processed int(10) unsigned default NULL,
PRIMARY KEY (pageid),
KEY sourceid (sourceid)
) ENGINE=MyISAM AUTO_INCREMENT=9768 DEFAULT CHARSET=latin1;
В столбце data содержится текст размером около 80–200 КБ на запись. Общий размер данных, хранящихся в столбце data , составляет около 1,5 ГБ.
Выполнение этого запроса занимает 0,08 секунд:
select pageid from page
Но выполнение этого запроса занимает около 130.0 секунд:
select sourceid from page
Как видите, у меня есть первичный индекс для page.pageid и индекс для page.sourceid. Так должен ли второй запрос занимать ТО долго?
Редактировать # 1
ОБЪЯСНИТЬ вернулся
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE page index sourceid 5 9767 Using index
Извините, но профилирование не работает ... MySQL (его 4.1.22) не распознал запрос SHOW PROFILE.
ПОКАЗАТЬ ИНДЕКС возвращается
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
page 0 PRIMARY 1 pageid A 9767 BTREE
page 1 sourceid 1 sourceid A 3255 YES BTREE