region23
@region23
веб-разработчик

На что мигрировать с MS SQL? MySQL или PostgreSql?

В базе около 30 таблиц. В самой большой около 20 000 000 записей.

Сейчас используем ХП, но хотим от них отказаться и хранить в базе только таблицы с данными.


Отказываемся в связи с переходом с Windows-платформы на Linux (Ubuntu).


Что предпочесть для миграции, MySQL или PostgreSql? Какой тулзой мигрировать?
  • Вопрос задан
  • 11052 просмотра
Пригласить эксперта
Ответы на вопрос 7
AotD
@AotD
PHP, Redis, Postgresql
Предпочесть PostgreSql, плюшек и возможностей больше -> меньше геморроя с перепиливанием СУБД-зависимого кода.
Ответ написан
Комментировать
FreeTibet
@FreeTibet
dharma supplier
PostgreSQL. В MySQL постоянно будеде сталкиваться, что нет фишек, к которым вы привыкли.
Ответ написан
Комментировать
maratfmu
@maratfmu
Почему бы не попробовать MongoDB?
Ответ написан
gmlexx
@gmlexx
Сначала нужно для себя решить — как вы видите свое приложение в будущем. Если там будет 20 млрд. записей через пару месяцев, и более тесная работа с базой, то PostgreSQL.
Если база нужна как редко обновляемый склад, то и MySQL сойдет. Зачем палить из пушки по воробьям?
Ответ написан
Malenkov
@Malenkov
Недавно перенёс один проект (500 млн записей) с mssql на postgresql. Пришлось конечно немного допилить, но в целом очень безпроблемно.

Мигрировал с помощью www.easyfrom.net/ Мне хватило триальной версии (строковых полей не было)
Тулза работала достаточно медленно (часов 6), но для меня это был самый простой способ.
Ответ написан
@codecity
Сравнивал MySQL и Postgree на скорость работы. Огномнейшая разница между использованием в одно-поточном и много-поточном режиме (много соединений из примерно 100 потоков).

Пишу по памяти результаты тестов (запускал на ноутбуке). Время — 1 секунда. Величина — количество записей менее1 Кб (одно поле и ключ).

MS SQL: ~700 записей в сек. в обеих режимах.
My SQL: 20 в одно, 120 в много.
Postgree: 100 в одно, 100 в много. Но в много-поточном вылетали ошибки одна за другой, из чего я сделал вывод о том, что она не работает корректно в много-поточном режиме.

Вообще рекомендую сравнить скорость работы, она не такая уж большая, как кажется на первый взгляд… Имхо, это один из важнейших параметров.

Я в итоге выбрал MySQL.
Ответ написан
@ztxn
Пг — версионник, у него запись не блокирует чтение, MS — блокировочник. Изоляция транзакций реализована совершенно по разному.

Простой пример:
ms, выполняя запрос insert into table (value) select max(value) +1 from table, в read commited не допустит дублирования значений при вставке несколькими сессиями, а в PG — запросто.

В этом контексте на MySQL может оказаться переехать куда проще. Он тоже блокировочник.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы