Почему Heroku использует Postgresql? - PullRequest
31 голосов
/ 09 декабря 2010

Я занят портированием некоторого специфичного для MySQL кода в Postgresql, чтобы использовать его с Heroku.Просто интересно, есть ли какая-то конкретная причина, почему Heroku пошел с Postgresql поверх MySQL?Производительность, архитектура и т. Д. *

ОБНОВЛЕНИЕ: Из сообщения в блоге heroku :

Мы уверены, что в Heroku PostgreSQL предлагает лучшее сочетание мощных функций, данныхцелостность, скорость, соответствие стандартам и открытый исходный код любой базы данных SQL на планете.

Ответы [ 6 ]

26 голосов
/ 09 декабря 2010

Postgres лучше, чем MySQL в во многих отношениях .Вы можете прочитать эти посты о миграции rails app из mysql в postgres.Хотя mysql более популярен , чем postgres, но instagram использует postgres, возможно, из-за этих причин.Я чувствую, что Postgres гораздо более зрелый и надежный, чем MySQL.Принимая во внимание, что mysql более прост и удобен в использовании.

Перенос MySQL в PostgreSQL в Rails «mindlev

Преобразование данных приложения Rails из MySQL в PostgreSQL

Для переноса данных используется небольшой удобный скрипт: Задача Rake для передачи базы данных Rails, скажем, из MySQL в Postgres и обратно

11 голосов
/ 09 декабря 2010

Сравните длину этого списка MySQL gotchas с этим списком postgresql gotchas .MySQL с большей вероятностью может вас испортить.

6 голосов
/ 09 декабря 2010

Вообще говоря, я считаю, что pgsql лучше подходит для 24/7 операций, чем mysql.Кроме того, кажется, что в него встроено меньше пулеметов.Я думаю, что если вы более знакомы с одним или другим, это, скорее всего, повлияет на ваше решение, чем что-либо еще.

5 голосов
/ 09 декабря 2010

Что ж, производительность на Postgres, как правило, лучше для сложных запросов, например, типа, генерируемого ORM. Кроме того, postgres просто более «солидный». Это исключительный случай, но серверы postgres, которыми я управлял, всегда были гораздо менее хлопотными, чем mysql, который любит время от времени случайно аварийно завершать работу, иногда приводя к повреждению таблицы на пути вниз.

1 голос
/ 22 марта 2015

В настоящее время я перемещаю одно из приложений Rails моего клиента из Heroku Postgresql в Mysql (дополнение ClearDB).PostgreSQL во многих отношениях является более строгой и «правильной» службой баз данных, поэтому Heroku поддерживает ее.Тем не менее, я считаю, что среда Rails более или менее сглаживает различия, и большинство приложений Rails не вырастут настолько большими, что проблемы с производительностью Mysql станут решающим фактором.

С другой стороны, PostgreSQL (В частности, предложение Heroku) имеет несколько острых недостатков для запуска приложения:

  • Цена. Для предотвращения еженедельных ошибок «потеря соединения с базой данных» при работе с Heroku Postgres, у вас естьраскошелиться $ 200 / месяц.На ClearDB вы получаете обещание 100% бесперебойной работы (у нас еще не было возможности оценить это требование) для плана $ 10 / месяц, который также предлагает 1 ГБ дискового пространства - больше, чем мы »когда-нибудь понадобится.
  • Упорядочение столбцов. При разработке на Rails я обращаюсь к файлу схемы базы данных schema.rb каждые 5 минут, и чтобы сохранить этот файл в чистоте и читаемости, я считаю его крайне важнымчтобы иметь возможность указать, в каком порядке должны быть добавлены столбцы. MySQL поддерживает указание порядка столбцов;PostgreSQL нет.Во многих случаях эта функция не важна, но из-за того, как работает Rails / ActiveRecord, моя жизнь становится намного сложнее, когда я не могу изменить порядок столбцов.
0 голосов
/ 18 декабря 2012

Не противореча ни одному из приведенных выше советов, но если по какой-то причине вы действительно хотите или должны придерживаться MySQL, я недавно заметил, что Heroku теперь предлагает бесплатное дополнение MySQL под названием ClearDB:

https://addons.heroku.com/cleardb

Не использовал его, поэтому я не могу ручаться за это.Heroku заявляет, что для бесплатной версии время безотказной работы составляет 99,95% (против 100% безотказной работы, заявленной для любой из платных версий), и они отказываются от бесплатной версии как от «Готовой к производству».Они утверждают, что ClearDB - это «собственный, неизмененный MySQL».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...