SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.04.2016 09:14:35

skeletor
Участник
Зарегистрирован: 02.12.2011
Сообщений: 5

Альтернативы ALTER'y на большой таблице на нагруженной базе

Всем привет.
Есть большая таблица (~ 2 млрд. записей) и к ней идёт порядка 80% всех запросов. В этой таблице нужно сделать ALTER (добавить 1 столбец). Тупо в лоб сделать alter понятное дело нельзя. Рассматривал вариант

insert into table_new ... select ... from table_old


но тоже не подходит, так как после переименования таблиц сбросится кеш, а набор нового кеша сложит базу.
Между этой базой и другой настроена репликация master - master. Версия mysql 5.6.25.
Может кто-то знает какие-то другие варианты сделать alter?
Заранее спасибо.

Неактивен

 

#2 20.04.2016 10:03:12

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Альтернативы ALTER'y на большой таблице на нагруженной базе

Попробуйте:

ALTER TABLE ALGORITHM=INPLACE

https://dev.mysql.com/doc/refman/5.6/en … e-ddl.html

Но обязательно протестируйте, так как неизвестно что будет с кэшом и неизвестны другие побочные эффекты.

Неактивен

 

#3 20.04.2016 10:13:48

skeletor
Участник
Зарегистрирован: 02.12.2011
Сообщений: 5

Re: Альтернативы ALTER'y на большой таблице на нагруженной базе

Спасибо, но похоже не выйдет:

As of MySQL 5.6.16, ALTER TABLE upgrades MySQL 5.5 temporal columns to 5.6 format for ADD COLUMN, CHANGE COLUMN, MODIFY COLUMN, ADD INDEX, and FORCE operations. This conversion cannot be done using the INPLACE algorithm because the table must be rebuilt, so specifying ALGORITHM=INPLACE in these cases results in an error. Specify ALGORITHM=COPY if necessary.

Неактивен

 

#4 20.04.2016 10:29:15

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Альтернативы ALTER'y на большой таблице на нагруженной базе

Если действительно есть колонки с датой и временем в формате MySQL 5.5, то действительно не получится.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson