MySQL клонирует таблицу, удаляет некоторые данные и затем меняет их имена

0

У нас есть таблица MySQL MySQL с 8 миллионами строк. Мы хотим вырезать из него около 2 м строк, удалить некоторые устаревшие индексы и добавить новые. Для достижения почти без простоя наш план состоит в создании клона таблицы (и блокировки оригинала), запустите script (Ruby), чтобы обрезать те данные, которые нам больше не нужны, и, наконец, добавить новые индексы. Затем мы разместим страницу обслуживания в веб-приложении, заменим их имена (переименовав таблицы) и перезапустив приложение.

Это лучший способ достичь наших окончательных результатов? Любые другие советы/предложения от людей, у которых есть что-то похожее на это раньше? Каков наилучший способ (супер классный секрет mysql cmds) клонировать таблицу? Лучший/быстрый способ массового удаления строк?

  • 0
    Сколько времени занимает выполнение вашего текущего скрипта? Любая идея?
  • 0
    Попытка получить промежуточный сервер для своевременного выполнения сценария, но Amazon EC2 выдает ошибки емкости
Теги:
copy
clone

1 ответ

2
  • Все ссылки используют представление, а не чтение непосредственно из old_table
  • Создать new_table
  • Выберите нужные записи в new_table, , чтобы не записывать записи записей, которые нужно удалить
  • Индекс new_table
  • Обновить представление, заменить old_table ссылки на new_table
  • Переименовать old_table

Примените old_table, если хотите.

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

  • 0
    Может быть и способ сделать все это на прямом SQL, если вы хотите большей скорости ...
  • 0
    Зачем использовать представления? не могли бы вы перейти более подробно
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню