Изменение большое таблицы mysql

S
На сайте с 09.10.2006
Offline
45
646

Столкнулся с необходимостью изменить большую (>8M записей) таблицу mysql с типом myisam. В частности проставить недостающие индексы на столбцы.

При простом ALTER TABLE blabla ADD INDEX можно ждать до нового года. А сам процесс mysqld использует всего лишь 5% процессора. :(

Подскажите плз, какое есть решение у данной проблемы?

Сервер CPU 3.33GHz, 2Гб оперативы, Ос freebsd. Настройки mysql брал немного измененные стандартные my-huge.cnf


[client]
max_allowed_packet = 32M
default-character-set = cp1251

[mysqld]
character-set-server = cp1251
max_connections = 1000
table_cache = 10240
skip-innodb
skip-bdb
skip-locking
key_buffer = 384M
max_allowed_packet = 32M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 2

[safe_mysqld]
set-variable = max_connections=1000
set-variable = table_cache=13000

character-set-server = cp1251
[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

p.s. Также есть необходимость в ускорении вставки дампов сделанных через mysqldump --opt и вставляемых через mysql < dump.sql. Здесь ситуация с потребляемыми ресурсами процессора абсолютно такая же.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий