Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Index, Primary Key, Key, Не понимаю :((( 
:(
    Опции темы
CyClon
Дата 5.11.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Сколько читал мануал, сколько смотрел примерно, так и не понял, зачем нужны index, primary key и key и в каких ситуациях их нужно использовать. Понял, что правильно поставленный индекс уменьшает время поиска, и неправильно поставленный наоборот, увеличивает время. А как понять "Правильно", "Не правильно" - не доходит. Кто может растолковать?


--------------------
user posted image
PM   Вверх
Mal Hack
Дата 5.11.2006, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Индекс - специальным образом хранится в базе, отдельно от данных (его таблица меньше таблицы БД), зачастую в памяти. Т.е. при каком-ть поиске сначала проссматривается таблица индексов, а потом уже вся таблица. Понятно, что быстрее будет.

Цитата(CyClon @  5.11.2006,  20:31 Найти цитируемый пост)
primary key

Это первичный ключ. Идентификатор (уникальный) каждой записи.
Проще в том плане, что БД легче при поиске пройтись по упорядоченному массиву чисел, нежели по названию товара, к примеру.

Первичный ключ сразу попадает в индексы.
PM ICQ   Вверх
CyClon
Дата 6.11.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Спс, ясно. А зачем нужен key???

И индекс... Я так понял его нужно ставить на поля, по которым в основном идет поиск? Т.е. если id - первичный ключ, то индексом можно поставить поле price, т.е. поиск по цене.


--------------------
user posted image
PM   Вверх
-=Ustas=-
Дата 6.11.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(CyClon @  6.11.2006,  10:13 Найти цитируемый пост)
Я так понял его нужно ставить на поля, по которым в основном идет поиск? 

На полях, которые учавствуют в выражениях WHERE и ORDER BY. Кстати, ORDER BY в результате на целой таблице (если записи выбраны все) использует индекс ТОЛЬКО при лимите.

Цитата(CyClon @  6.11.2006,  10:13 Найти цитируемый пост)
то индексом можно поставить поле price, т.е. поиск по цене

Если у тебя в условии идет WHERE price = ... то конечно будет лучше если на него повесить индекс типа KEY price (price).

Тут еще все зависит от того, какие данные у тебя храняться в поле, если это поле числовое, то на него можно повесить просто KEY, если поле, например, VARCHAR , то имеет смысл делать индекс только по первый 10-15 символам, этого вполне хватит для построения ключа, т.е. KEY title (title(10)). Если у тебя в поле храняться уникальные значение (я имею ввиду не id primary key), допустим какое нить name, то тут лучше всего есть смысл повесить  на него уникальный ключ UNIQUE name (name). 
Да и еще, индексы вешаются на поля NOT NULL.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 6.11.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(CyClon @  6.11.2006,  10:13 Найти цитируемый пост)
А зачем нужен key???

KEY, если честно не помню  smile 
Но если, это понятие - "индекс", то Юстас уже его как бы раскрыл, добалю свои пять капель...

Цитата(Mal Hack @  5.11.2006,  21:51 Найти цитируемый пост)
Индекс - специальным образом хранится в базе, отдельно от данных (его таблица меньше таблицы БД), зачастую в памяти. Т.е. при каком-ть поиске сначала проссматривается таблица индексов, а потом уже вся таблица. Понятно, что быстрее будет.

Это как в библиотеке. Есть картотека - индексы, а есть хранилище - таблица. Где искать легче?
PM ICQ   Вверх
-=Ustas=-
Дата 6.11.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(Mal Hack @  6.11.2006,  12:46 Найти цитируемый пост)
Но если, это понятие - "индекс"

Оно самое  smile  Разницы нет, что 
Код

CREATE INDEX ....

или 
Код

ALTER TABLE ... ADD KEY

В итоге результат один


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
CyClon
Дата 6.11.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Т.е. KEY === INDEX? Ясно...

А UNIQUE - опять же индекс, только немного другого типа? В общем, запутанная эта тема smile)) Может стоит сделать FAQ по ней? Ибо в книжках этому уделяют или очень мало внимания, или вообще об этом не пишут, что программист со стажом > 2 лет вообще не знает, что существуют индексы smile))


--------------------
user posted image
PM   Вверх
-=Ustas=-
Дата 6.11.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(CyClon @  6.11.2006,  14:47 Найти цитируемый пост)
Т.е. KEY === INDEX? Ясно...

Да 

Цитата(CyClon @  6.11.2006,  14:47 Найти цитируемый пост)
А UNIQUE - опять же индекс

Да, индекс, только уникальный, следовательно быстрее всех на ряду в примари smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
CyClon
Дата 7.11.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Всем респект, пойду еще статей по этой теме почитаю smile


--------------------
user posted image
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.