Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Индексирование базы данных (Valeri) 22/01/2002 - 17:26:30
      Re: Индексирование базы данных (Василий) 23/01/2002 - 13:33:18
      Re: Спасибо (Valeri) 23/01/2002 - 15:31:50
      Re: Спасибо (dim-dim) 23/01/2002 - 15:57:03

> Original message text:
> From: Valeri - 22/01/2002 - 17:26:30
> Subject:Индексирование базы данных
> -----------------
> Я перечитал MySQL руководство, а также прочитал и А.Паутов,C.Богомолов...
> Но не понял одну серьезную вещь:
> Для чего нужно индексирование базы данных и как это сделать, если имеется уже давно работающая база?
> Если не трудно дайте, plz, какие нибудь примеры, простые для понимания.
> Не испортится ли существующая база?
>
>


From: Василий - 23/01/2002 - 13:33:18
Subject:Индексирование базы данных
-----------------
Индексирование таблиц нужно для ускорения работы при больших объемах информации в таблице. Как справедливо пишут в разных источниках, индекс в таблице - это как оглавление в книге.
Кроме того, индекс упорядочивает записи.

Вот пример. Пусть у тебя есть таблица в 1000000 записей. В таблице есть числовое поле. Тебе надо получить все записи, у которых это поле равно 532980. Если индекса по этому полю нет, будут пересмотрены ВСЕ записи.
Если идекс по этому полю есть то будет рассмотрено примерно двоичный логарифм от 1000000 вариантов. А это равно примерно 20. Итого выигрыш во времени 1000000/20=50000 раз.

При объединении таблиц тоже по возможности используются индексы. Например, есть иаблицы т1(а1) и т2(а2), поле а2 ссылается на а1.
select * from t1, t2 where a1=a2;
Здесь для каждого значения а1 ищется запись в т2 с равным ему значением а2. Если индекс по а2 есть, это намного ускорит дело.


Вообще, правильное индексирование - первый и главный способ повышения производительности.

Единственный недостаток индекса - это легкое замедление при добавлении/изменении/удалении записей из проиндексированной таблицы. Ведь каждое такое изменение меняет не только запись в таблице, но и информацию о данной записи в индексах (в случае изменения записи информация о записи менятся только в тех индексах, в которых учавствуют изменяемые поля). Но это мелочи по сравнению с получаемым выигрышем в селектах.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
1644



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |