Мы начали обновлять наши таблицы по новым индексам. Поскольку простоя дольше, чем минута, недопустимо из -за характера системы, мы делаем это, копируя данные из старой таблицы в новую (тем временем новые данные вставляются в старую таблицу). < /P>
Есть несколько серверов с немного разными версиями MySQL и оборудованием. Два сервера уже были успешно перенесены на новую таблицу. Но третий стал проблематичным: как только мы запустим < /p>
Код: Выделить всё
INSERT INTO `new_messages` SELECT * FROM `messages` WHERE `ID` BETWEEN @N1 AND @N2;
Одна вещь, которая беспокоилась в самом начале, - это количество вставки/s в Show Engine Innodb Status : провальный сервер имеет почти 6000/S, что в 2 и 5 раз меньше, чем два сервера, которые успешно перемещаются, но все еще довольно много в жизни. /> сбрасывание всей таблицы (сотни миллионов записей) - это слишком длинное время простоя. Использование небольших кусков не сильно изменилось бы: если запустить без задержек между ними, это та же длинная замораживание для всей системы, с задержками это может занять вечно. Немного другого оборудования, немного разных версий MySQL, почти одинаковая конфигурация.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... urce-table