![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Сколько читал мануал, сколько смотрел примерно, так и не понял, зачем нужны index, primary key и key и в каких ситуациях их нужно использовать. Понял, что правильно поставленный индекс уменьшает время поиска, и неправильно поставленный наоборот, увеличивает время. А как понять "Правильно", "Не правильно" - не доходит. Кто может растолковать?
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Индекс - специальным образом хранится в базе, отдельно от данных (его таблица меньше таблицы БД), зачастую в памяти. Т.е. при каком-ть поиске сначала проссматривается таблица индексов, а потом уже вся таблица. Понятно, что быстрее будет.
Это первичный ключ. Идентификатор (уникальный) каждой записи. Проще в том плане, что БД легче при поиске пройтись по упорядоченному массиву чисел, нежели по названию товара, к примеру. Первичный ключ сразу попадает в индексы. |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Спс, ясно. А зачем нужен key???
И индекс... Я так понял его нужно ставить на поля, по которым в основном идет поиск? Т.е. если id - первичный ключ, то индексом можно поставить поле price, т.е. поиск по цене. |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
На полях, которые учавствуют в выражениях WHERE и ORDER BY. Кстати, ORDER BY в результате на целой таблице (если записи выбраны все) использует индекс ТОЛЬКО при лимите. Если у тебя в условии идет WHERE price = ... то конечно будет лучше если на него повесить индекс типа KEY price (price). Тут еще все зависит от того, какие данные у тебя храняться в поле, если это поле числовое, то на него можно повесить просто KEY, если поле, например, VARCHAR , то имеет смысл делать индекс только по первый 10-15 символам, этого вполне хватит для построения ключа, т.е. KEY title (title(10)). Если у тебя в поле храняться уникальные значение (я имею ввиду не id primary key), допустим какое нить name, то тут лучше всего есть смысл повесить на него уникальный ключ UNIQUE name (name). Да и еще, индексы вешаются на поля NOT NULL. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
KEY, если честно не помню Но если, это понятие - "индекс", то Юстас уже его как бы раскрыл, добалю свои пять капель... Это как в библиотеке. Есть картотека - индексы, а есть хранилище - таблица. Где искать легче? |
|||
|
||||
| -=Ustas=- |
|
||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
Оно самое
или
В итоге результат один -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Т.е. KEY === INDEX? Ясно...
А UNIQUE - опять же индекс, только немного другого типа? В общем, запутанная эта тема |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
Да Да, индекс, только уникальный, следовательно быстрее всех на ряду в примари -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Всем респект, пойду еще статей по этой теме почитаю
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |