Переключение от MySQL до PostgreSQL - подсказки, приемы и глюки?

Дайте больше информации, пожалуйста.

Каков результат вашей компиляции? Один exe, несколько файлов, ... ?? В чем разница между несколькими настройками? Только ссылки в файлах или что-то еще?

35
задан Community 23 May 2017 в 10:30
поделиться

4 ответа

Просто прошел через это сам, ну, я все еще ...

  • Текст с учетом регистра
  • Отсутствие INSERT IGNORE и ЗАМЕНА
  • Явное приведение необходимо почти везде
  • Без обратных кавычек
  • ЗАГРУЗИТЬ ИНФИЛЬ ДАННЫХ ( COPY близко, но недостаточно близко)
  • Изменить автоинкремент в SERIAL
  • Несмотря на то, что в MySQL в Postgres существует плохая форма, INNER JOIN без предложения ON не может быть, используйте CROSS JOIN или подобное
  • COUNT (*) может быть очень медленным
  • Базы данных кодируются с помощью наборов символов, а не таблиц
  • Вы можете иметь несколько баз данных, с несколькими схемами (MySQL действительно имеет только одну базу данных и несколько схем)
  • Различение разделов
  • Интервал MySQL против интервала Postgres (для временных интервалов)
  • Неявное переименование столбца, Postgres требует AS
  • Невозможно обновить несколько таблиц одновременно в Postgres
  • Функции Postgres являются мощными. Таким образом, нет CALL proc (); ; переписать proc () как функцию и SELECT proc (); .
51
ответ дан 27 November 2019 в 06:49
поделиться

язык: Python
и могут ли эти методы быть адаптированы

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

    Эти затраты делают перемещение в другую базу данных слишком дорогим для большинства нетривиальные приложения. Подумайте о преимуществах ОЧЕНЬ тщательно против огромных, огромных затрат на выполнение всего вышеперечисленного.

    Я был бы удивлен, если бы вам потребовалось менее трех месяцев, в нетривиальном приложении, в течение которого вы выиграли не сможет продолжить регулярное развитие.

    9
    ответ дан 27 November 2019 в 06:49
    поделиться

    Вы можете попробовать Gotch PostgreSQL , который содержит наиболее распространенные проблемы. В целом, документация PostgreSQL тоже довольно хорошая, поэтому держите ее под подушкой.

    Кроме того, Преобразование из MySQL в PostgreSQL в вики pgsql.

    8
    ответ дан 27 November 2019 в 06:49
    поделиться

    Перед преобразованием установите MySQL на ANSI-строгость, запустив сервер с: --transaction-изоляция = SERIALIZABLE --sql-mode = ANSI

    Убедитесь, что вы не используете Таблицы MyIsam.

    MySQL допускает много преобразований, которые не должны; Для pg потребуется приведение.

    Ваши сохраненные процессы, функции и триггеры должны быть переписаны. pg предоставляет вам выбор языков для них, но вы должны установить языки; это не так удобно для пользователя, как MySQL.

    pg будет разрешать только в списке выбора столбцы, которые находятся в группе или являются агрегатами; MySQL обманет, выбрав первое значение в группе, если вы сделаете это.

    MySQL добавляет несколько расширений: оператор неравенства может быть ! = , как в C, он допускает '&&' как синоним для 'и', '||' для «или» и т. д. В частности, pg использует '||' означать цепочку строк.

    По сути, pg довольно строго ANSI, а MySQL - нет. Я настоятельно рекомендую, чтобы ваш MySQL как можно точнее соответствовал ANSI, прежде чем переходить на pg, а затем проверять наличие любых предупреждений при запуске приложений.

    5
    ответ дан 27 November 2019 в 06:49
    поделиться
    Другие вопросы по тегам:

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