Fuelen » 2009.11.18 11:51

Для чего ключи нужны?
CREATE TABLE `f_post` (
`pid` int(11) NOT NULL auto_increment,
`name` text NOT NULL,
`text` text NOT NULL,
`time` int(11) NOT NULL default '0',
`tid` int(11) NOT NULL default '0',
PRIMARY KEY (`pid`),
KEY `tid` (`tid`)
) Знаю только, что PRIMARY KEY значит, а другой KEY зачем?

Gemorroj » 2009.11.18 11:53

это индекс. нужен для быстрой выборки по указанному полю. умение работать с индексами - одно из обязательных условий вменяемого программирования.

Fuelen » 2009.11.18 14:19

Т.е. из этой таблицы найболее быстро будет проходить виборка по полях ид и тид?

Gemorroj » 2009.11.18 14:42

Почитай про индексы. Индекс - как содержание в книге.
Выборка будет быстрее проходить в случае если в условии выборки учавствует индекс и СУБД может его использовать. Есть еще составные, уникальные, foreign ключи и др. Посмотреть о возможности использования индекса можно используюя оператор EXPLAIN

Fuelen » 2009.11.18 15:58

Прочитал, сам принцип работы вроди понял, но принцип создания индексов нет :(

Fuelen » 2009.11.18 16:32

Вот, что значит первый тид и что второй
KEY `tid` (`tid`)?

Gemorroj » 2009.11.18 16:38

поле на которое ставим индекс и имя этому индексу.

Fuelen » 2009.11.18 22:43

Это понял. А UNIQUE при каких случаях используется?

Gemorroj » 2009.11.18 22:47

когда тебе нужен уникальный ключ. т.е. одинаковых записей в таком поле быть не может.

Fuelen » 2009.11.19 01:18

Это как primary key?

НЕЗНАЙКА » 2009.11.19 08:23

Это чтобы не выбирать потом из базы с условием DISTING:)

Gemorroj » 2009.11.19 08:43

Fuelen, да. НЕЗНАЙКА, нет, это именно чтобы были уникальные записи)

Fuelen » 2009.11.19 12:56

У меня таблица с инфой юзеров около 30 полей имеет. И почти к каждому полю будет запрос в поиске. Всё равно писать ключи?

Gemorroj » 2009.11.19 13:25

Все зависит от конкретных запросов. Если во WHERE условии учавствует сразу несколько полей, то нужно ставить 1 индекс на все эти поля. Но на самом деле это общие понятие, очень многое зависит от конкретного случая. Если в таблицу часто записываются или изменяются данные, то индексы прилино замедляют такие операции.