Сколько из Вас пошло от MySQL до Postgresql? Действительно ли это стоило того?

Я думаю о перемещении от MySQL до Пост-ГРЭС для разработки направляющих, и я просто хочу услышать то, что другие разработчики, которые сделали перемещение, должны сказать об этом.

Я ищу личный опыт, не Mysql v перестрелка Пост-ГРЭС, просто за и против, в которые Вы сами прибыли. Наполните это, люди не могли бы обязательно думать.

Не стесняйтесь объяснять, почему Вы переместились во-первых также.

11
задан concept47 3 June 2010 в 08:30
поделиться

4 ответа

Я перешел на Postgres и, честно говоря, не могу быть счастливее. Хотя Postgres не хватает некоторых возможностей MySQL (Insert Ignore, Replace, Upsert stuff, и Load Data Infile для меня в основном), те возможности, которые у него есть, с лихвой их восполняют. Его хранимые процедуры намного мощнее, и в Postgres намного проще писать сложные функции и агрегаты.

С точки зрения производительности, если вы сравниваете с InnoDB (что справедливо из-за MVCC), то она кажется как минимум такой же быстрой, возможно, даже быстрее - мы не смогли провести реальные измерения из-за некоторых ограничений, но проблем с производительностью точно не было. Сложные запросы с несколькими соединениями, безусловно, быстрее, намного быстрее.

Я считаю, что вы с большей вероятностью получите правильный ответ на свой вопрос от сообщества Postgres. У всех и их бабушек есть 50 различных способов сделать что-то в MySQL. В случае с Postgres зайдите в список рассылки, и вы, скорее всего, получите много очень хорошей помощи.

Любые различия в синтаксисе и тому подобное немного тривиальны.

В целом, Postgres кажется мне более "взрослым". Я использовал MySQL в течение многих лет и теперь стараюсь избегать его.

8
ответ дан 3 December 2019 в 08:28
поделиться

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

Это решит те неприятные проблемы, которые возникают, когда вы переходите из среды разработки с sqlite на свой сервер MySQL и понимаете, что ваши миграции были неудачными и остались незавершенными! (Нет, я не делал этого на производственном сервере, но это испортило наш общий тестовый сервер!)

0
ответ дан 3 December 2019 в 08:28
поделиться

Ой, это могло закончиться слезами.

Исходя только из личного опыта, мы перешли с MySQL исключительно потому, что наша производственная система (Heroku) работает под управлением PostgreSQL. У нас были специально созданные для MySQL запросы, которые ломались в PostgreSQL. Итак, я полагаю, что мораль рассказа здесь - запускать все на одной и той же СУБД, иначе вы можете столкнуться с проблемами.

Нам также иногда нужно вставить записи сверхбыстрого типа. Для этого мы используем встроенную в PostgreSQL функцию COPY , которая используется аналогично этому в нашем приложении:

query = "COPY users(email) FROM STDIN WITH CSV"
values = users.map! do |user|
  # Be wary of the types of the objects here, they matter.
  # For instance if you set the id to a string it will error.

  %Q{#{user["email"]}}
end.join("\n")

raw_connection.exec(query)
raw_connection.put_copy_data(values)
raw_connection.put_copy_end

Она вставляет ~ 500 000 записей в базу данных менее чем за две минуты. Примерно в то же время, если мы добавим больше полей.

Еще пара приятных вещей, которые PostgreSQL имеет по сравнению с MySQL:

  • Полнотекстовый поиск
  • Географические запросы (PostGIS)
  • Синтаксис LIKE похож на этот email ~ 'hotmail | gmail' , НЕ НРАВИТСЯ - это как электронная почта! ~ 'Hotmail | gmail' . | обозначает или.

В итоге: PostgreSQL похож на кирпичи и строительный раствор, где MySQL - это Lego. Делайте то, что вам нравится. Это только моё личное мнение.

5
ответ дан 3 December 2019 в 08:28
поделиться

Мы перешли на PostgreSQL по нескольким причинам в начале 2007 года (или годом ранее?). Основными причинами были:

  • Поддержка SQL - PostgreSQL гораздо лучше подходит для сложных SQL-запросов, например, с большим количеством объединений и агрегатов
  • Хранимые процедуры MySQL казались не очень зрелыми
  • Изменения в лицензии MySQL - двойная лицензия, с открытым исходным кодом и коммерческая, разделение, которое заставило меня задуматься о будущем. С лицензией PG BSD вы можете делать все, что захотите.
  • Ошибочное поведение - когда MySQL подсчитывал строки, иногда он просто возвращал приблизительное значение, а не реальные подсчитанные строки.
  • Ограничения вели себя немного странно, вставляя усеченные/адаптированные значения. См. http://use.perl.org/~Smylers/journal/34246
  • Административный интерфейс PgAdminIII показался более стабильным и зрелым, чем аналог MySQL
  • PostgreSQL очень надежен и безопасен в случае сбоя

// Джон

1
ответ дан 3 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

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