powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорение миграции/изменения таблиц в MySQL?
12 сообщений из 12, страница 1 из 1
Ускорение миграции/изменения таблиц в MySQL?
    #39873744
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, поделитесь пожалуйста мыслями, опытом.

Хочется улучшить/ускорить миграцию MySQL базы данных.
У нас стандартный подход, скрипты в liquibase, выкатывается новая версия, скрипты запускаются.

Но продуктивная БД достаточно большая и изменение таблицы(добавление колонки, изменение значений) с 10-15 миллионами записей может длится часами. Что призводит к блокировке таблицы и так д.. Поэтому деплой с изменениями стараются делать когда не слишком много запросов и так д..

Как можно улучшить сию ситуацию?
Как делаете миграции вы? Как решали такую проблему?
Где почитать о улучшениях при миграции/изменении БД?
Решит ли частично проблемы переезд с MySQL на PostreSQL?

Спасибо!
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874121
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставить на сервер быстрые диски?

сомневаюсь, что перевод на PostgeSQL что-то поменяет, а может даже сделает и хуже. У "промышленных" СУБД типа Oracle, скорее всего есть специальные решения для систем 24x7, но и то явно в EE редакции (дофига денег)

тут только:
1. тупо ускорять (более быстрый сервер)
2. решать организационно - смериться с неизбежным, выгонять всех и например запускать скрипт ночью или (если ночи не хватает) на выхдных
3. не трогать таблицы без особой надобности

честно говоря, IMHO проблема выглядит как-то надуманной. Что бы в нормальной рабочей системе требовалось регулярно менять основые таблицы.... бред какой-то. Не каждый же день выходят major патчи требущие изменения структур, даже если система в режиме разработки, пусть даже минор патчи раз в 1-2 недели, но major патчи чаще чем раз в 1-2 месяца... когда Вы эти изменения тестировать-то успеваете?
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874144
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_продуктивная БД достаточно большая и изменение таблицы(добавление колонки, изменение значений) с 10-15 миллионами записей может длится часами. Что призводит к блокировке таблицы
Добавление поля? это вообще онлайновая операция и должна выполняться почти мгновенно. Ищите, где косячите...

Изменение 15kk значений за несколько часов? у вас там первый пень и 32 метра оперативы, что ли, или БД на дискетку пишется?
В крайнем случае - создание дополнительного поля, навешивание триггеров на его обновление при изменении поля-источника, потом копирование с обработкой чуньками по 5-10 тысяч, затем быстро лок-дроп-ренейм.
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874147
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevсомневаюсь, что перевод на PostgeSQL что-то поменяет, а может даже сделает и хуже
Ну как postgresql dba я знаю как вносить изменения схемы на живой проект без downtime или с секундными локами. Если приложение уверено, что только оно умеет вносить миграции (неправильно) - то это сложнее. Некоторые такие якобы умные штуки даже банальный create index concurrently не умеют...

Для mysql - например вот в этот раздел документации смотреть надо: https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html
Потом перконовский pt-online-schema-change, какие-нибудь пляски вокруг репликации. mysql я не админил, детально не распишу.
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874180
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ и мнение..

Leonid Kudryavtsevчестно говоря, IMHO проблема выглядит как-то надуманной. Что бы в нормальной рабочей системе требовалось регулярно менять основые таблицы.... бред какой-то. Не каждый же день выходят major патчи требущие изменения структур, даже если система в режиме разработки, пусть даже минор патчи раз в 1-2 недели, но major патчи чаще чем раз в 1-2 месяца... когда Вы эти изменения тестировать-то успеваете? - Вот так как-то и живём. Да, всё верно, релизимся раз в 2 недели. Такие апдейты, действительно бывают не часто, но бывают и каждый раз вспоминается, что нужно как-то оптимизировать...
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874183
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaДобавление поля? это вообще онлайновая операция и должна выполняться почти мгновенно. Ищите, где косячите... - буду. Уже почитал о этом. Спасибо.

AkinaИзменение 15kk значений за несколько часов? у вас там первый пень и 32 метра оперативы, что ли, или БД на дискетку пишется? Не знаю, сколько миллионов точно, но база весит около 20Гиг. Никак нет, вполне себе продуктивный Galera Cluster, правда какие у него параметры не знаю..


AkinaВ крайнем случае - создание дополнительного поля, навешивание триггеров на его обновление при изменении поля-источника, потом копирование с обработкой чуньками по 5-10 тысяч, затем быстро лок-дроп-ренейм. - пасиб
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874191
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaДобавление поля? это вообще онлайновая операция и должна выполняться почти мгновенно. Ищите, где косячите... - буду. Уже почитал о этом. Спасибо.

AkinaИзменение 15kk значений за несколько часов? у вас там первый пень и 32 метра оперативы, что ли, или БД на дискетку пишется? Не знаю, сколько миллионов точно, но база весит около 20Гиг. Никак нет, вполне себе продуктивный Galera Cluster, правда какие у него параметры не знаю..


AkinaВ крайнем случае - создание дополнительного поля, навешивание триггеров на его обновление при изменении поля-источника, потом копирование с обработкой чуньками по 5-10 тысяч, затем быстро лок-дроп-ренейм. - пасиб
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874193
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MelkijДля mysql - например вот в этот раздел документации смотреть надо: https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html
Потом перконовский pt-online-schema-change, какие-нибудь пляски вокруг репликации. mysql я не админил, детально не распишу. Пасиб
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874207
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Вот так как-то и живём. Да, всё верно, релизимся раз в 2 недели. Такие апдейты, действительно бывают не часто, но бывают и каждый раз вспоминается, что нужно как-то оптимизировать...

вопрос на 90% решается организационно. Если "окно" для накатов патчей все равно есть, то накатить их ночью, в выходные - лично я проблемы не вижу

проблема только тогда, когда о них "и каждый раз вспоминается". Тогда понятно, предложение к коллегам неожиданно остаться поработать вечером, когда у них уже совершенно другие планы (например выпить пива в пятницу вечером) - может вызвать только негатива на кривых "патче-писателей"

если же админы об этом заранее за неделю знают + не от программистов, а от начальство + им это как-то компенсируется + есть удаленный доступ из дома.... просьба запустить скрипт ночью или в выходные - без проблем. AFAIK & IMHO

ну и IMHO

любое усложнение скрипта - возрастание вероятности не штатных ситуаций, сбоев при накате - а любой сбой при накате, это не 10-30 минут "подождать", это от полдня до пары дней стояния на ушах все конторы (а то и хуже)

плюс не копить все изменения на один раз. Я сейчас, например, все изменения структур/справочников (которые не ломают старый функционал), сразу на прод скидываю. Когда тестирование закончится, нужно будет накатить только пакеты.

IMHO
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874377
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_,
Я как то пытался думать, как быстрее поменять колесо на ходу, в итоге приходится останавливаться и все упирается в скорость откручиивания болтов. Так что железо и в африке железо
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874391
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsevвопрос на 90% решается организационно. Если "окно" для накатов патчей все равно есть, то накатить их ночью, в выходные - лично я проблемы не вижу

проблема только тогда, когда о них "и каждый раз вспоминается". Тогда понятно, предложение к коллегам неожиданно остаться поработать вечером, когда у них уже совершенно другие планы (например выпить пива в пятницу вечером) - может вызвать только негатива на кривых "патче-писателей" - Да, всё известно. Просто хотелось бы поменьше таких ситуаций где админы жалуются...
...
Рейтинг: 0 / 0
Ускорение миграции/изменения таблиц в MySQL?
    #39874392
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_UstinovЯ как то пытался думать, как быстрее поменять колесо на ходу, в итоге приходится останавливаться и все упирается в скорость откручиивания болтов. Так что железо и в африке железо ))))


Кста, Спрашивал вчера Galera Cluster -> /3 nodes / 60 Gb RAM / HDD Cluster
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорение миграции/изменения таблиц в MySQL?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]