#1 2009.11.18 11:51

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Ключи

Для чего ключи нужны?
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 зачем?

Неактивен

#2 2009.11.18 11:53

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: Ключи

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

Неактивен

#3 2009.11.18 14:19

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Ключи

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

Неактивен

#4 2009.11.18 14:42

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: Ключи

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

Неактивен

#5 2009.11.18 15:58

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Ключи

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

Неактивен

#6 2009.11.18 16:32

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Ключи

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

Отредактировано Fuelen (2009.11.18 16:33)

Неактивен

#7 2009.11.18 16:38

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: Ключи

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

Неактивен

#8 2009.11.18 22:43

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Ключи

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

Неактивен

#9 2009.11.18 22:47

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: Ключи

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

Неактивен

#10 2009.11.19 01:18

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Ключи

Это как primary key?

Неактивен

#11 2009.11.19 08:23

НЕЗНАЙКА
Участник
Откуда: Россия
Зарегистрирован: 2008.11.24
Сообщений: 312
Карма: 11
Профиль Веб-сайт

Re: Ключи

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


ДАУН-Данная Аватара Унаследована Незнайкой

Неактивен

#12 2009.11.19 08:43

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: Ключи

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

Неактивен

#13 2009.11.19 12:56

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Ключи

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

Неактивен

#14 2009.11.19 13:25

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: Ключи

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

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.1
0.018 s