Индекс по полю

anpv

Guest
Индекс по полю

Доброго времени суток.
Подскажите нужно ли создавать индекс по полю, если поле является первичным ключем?
 

freenet

Guest
если поле являеться PK значит он сразу же становится уникальным и ндексовым

вообщем не надо ни чего делать с ним
 

anpv

Guest
В общем таблица такая:
CREATE TABLE to_index_da (
depart mediumint(20) NOT NULL default '0',
ancest mediumint(20) NOT NULL default '0',
PRIMARY KEY (depart,ancest),
KEY ancest (ancest,depart)
) TYPE=InnoDB;
Без индекса запросы к ней выполняются в ~2 раза медленее, почему?
 

anpv

Guest
> без какого индекса ?
KEY ancest (ancest,depart)
или
KEY ancest (ancest)
KEY depart (depart)
> и какие запросы ?
Выборка, select.
 

anpv

Guest
Вот один из запросов:

SELECT i2.head FROM to_tourist t, to_index i, to_index i1, to_index i2, to_order o, to_index_da d
WHERE t.id=o.user_id AND o.place_id=i.id AND i1.id=i.parent AND d.ancest <> d.depart AND i2.id=d.ancest AND
d.depart=i1.id and t.id=9;
Таблица to_index
CREATE TABLE to_index (
id mediumint(20) NOT NULL auto_increment,
parent mediumint(20) NOT NULL default '0',
...
PRIMARY KEY (id),
KEY id (id,parent)
) TYPE=InnoDB;
и в ней тоже KEY id (id,parent)
 
Сверху