добавление индекса в большую mysql-таблицу

andyjam

Новичок
добавление индекса в большую mysql-таблицу

имеется таблица с данными, размер - около 400 метров, 3 миллиона записей.
необходимо добавить к ней индекс, по одному из полей.
интересует насколько опасна данная операция в плане "торможения" сервера, падения производительности и/или других возможных глюков..
сервер - пень 4, со скази-драйвами.
почему беспокоюсь, - на моей машине (селерон 1 Ггц) добавление этого индекса длилось довольно долго и вся система весьма ощутимо тормозила...
 

Demiurg

Guest
Смотря как часто у тебя происходят инсерты в эту таблицу, судя по количеству записей - давольно часто. А при каждом апдейте таблицы апдейтится и индекс, так что снижение производительности вполне реально.
 

andyjam

Новичок
Originally posted by Demiurg
Смотря как часто у тебя происходят инсерты в эту таблицу, судя по количеству записей - давольно часто. А при каждом апдейте таблицы апдейтится и индекс, так что снижение производительности вполне реально.
ага, уже более понятно.
таблица "статическая". к ней только select'ы делаются..
тогда не очень страшно?? :)
 

tony2001

TeaM PHPClub
Demiurg
его интересует сам процесс создания нового индекса, насколько я понял.
а не влияние индекса на производительность.

andyjam
глюков быть не должно, но занять может достаточно длительное время.
длительное - от 10-ти мин. до нескольких часов.
все зависит от свободных ресурсов сервера, поля, которое индексируется и т.п.
мой прогноз: минут 15-25.
 

ask

Новичок
если только select, то не страшно. а если индексное поле будет участвовать в условии where, то это даже ускорит запросы такого вида.
 

Demiurg

Guest
tony2001
я тоже так сначала подумал, но по фразе " добавление этого индекса длилось довольно долго ... " мне показалось, что индекс собственно уже добавлен.
 

andyjam

Новичок
ok, спасибо.

интересно, а если я залогинюсь с серверу через ssh, подконнекчусь к mysql, дам запрос на добавление индекса и свалю или меня вырубит из нета во время этого процесса..
чем это грозит?
 

Falc

Новичок
ask
Пока индекс не создастца полностю выборки не ускорятся.

Сервер скорее всего достаточно сильно затормозится на несколько минут, поэтому лучше такое делать когда нагрузка на сервер минимальна (например ночью). Многое зависит от того какая вообще нагрузка на сервер.

Даже если соединение с базой оборвется, запрос все равно будет работать, пока не создаст индекс.
 

andyjam

Новичок
всем сенкс, сенкс..
буду пробвать ночью..

Demiurg добавлен в локальную версию, на моем домашнем компе..

-~{}~ 02.03.04 18:19:

а насчет нагрузки.. он, зараза, иногда, в час пик выдает - too many mysql connections :(
 
Сверху