В скором времени нам нужно будет внести изменения в нашу производственную базу данных. Нам нужно минимизировать время простоя для этих усилий, однако инструкции ALTER TABLE будут работать довольно долго. Наши самые большие таблицы имеют 150 миллионов записей, самый большой файл таблицы - 50G. Все таблицы InnoDB, и он был настроен как один большой файл данных (вместо файла за стол). Мы запускаем MySQL 5.0.46 на 8-ядерном компьютере, 16G-памяти и конфигурации RAID10.
У меня есть некоторый опыт настройки MySQL, но это обычно фокусируется на чтении или записи нескольких клиентов. В Интернете есть много информации об этом в Интернете, однако, как представляется, очень мало информации об оптимальных методах (временно) настройки вашего сервера MySQL для ускорения ALTER TABLE на таблицах InnoDB или для INSERT INTO. SELECT FROM (мы, вероятно, будем использовать это вместо ALTER TABLE, чтобы иметь еще несколько возможностей немного ускорить работу).
Изменения схемы, которые мы планируем сделать, это добавить целочисленный столбец ко всем таблицам и сделать его первичным ключом вместо текущего первичного ключа. Нам нужно также сохранить "старый" столбец, поэтому перезапись существующих значений не является вариантом.
Какими были бы идеальные настройки для выполнения этой задачи как можно быстрее?