Почему Heroku использует Postgresql?
Я занят переносом некоторого кода MySQL на Postgresql, чтобы использовать его с Heroku. Просто интересно, есть ли какая-то конкретная причина, почему Heroku отправился с Postgresql над MySQL? Производительность, архитектура и т.д.
ОБНОВЛЕНИЕ: из сообщения heroku в блоге:
В Heroku мы считаем, что PostgreSQL предлагает лучшее сочетание мощные функции, целостность данных, скорость, соответствие стандартам и открытый исходный код любой базы данных SQL на планете.
Ответы
Ответ 1
Postgres лучше, чем mysql в много способов. Вы можете прочитать эти сообщения о приложении migils rails из mysql в postgres. Хотя mysql более популярный, чем postgres, но instagram использует postgres возможно из-за этих причин. Я чувствую, что postgres намного более зрелый и надежный, чем mysql. В то время как mysql проще и проще в использовании.
Перенос MySQL в PostgreSQL в Rails" m я n d l e v
Преобразование данных приложений Rails из MySQL в PostgreSQL
Для переноса данных удобно небольшое script: задача Rake для передачи базы данных Rails, скажем, от MySQL до Postgres и обратно
Ответ 2
Сравните длину этого списка MySQL gotchas с этим списком postgresql getchas. MySQL гораздо более вероятен, чтобы вас повредить.
Ответ 3
Вообще говоря, pgsql дает возможность работать 24/7 лучше, чем mysql. Кроме того, у него, похоже, меньше педалей. Я думаю, если вы более знакомы с тем или другим, что скорее повлияет на ваше решение, чем что-либо еще.
Ответ 4
Хорошо, производительность Postgres обычно лучше для сложных запросов, таких как тип, генерируемый ORM. Кроме того, postgres просто имеет тенденцию быть более "солидным". Это ancedotal, но серверы postgres, которыми я управлял, всегда были намного менее трудными, чем mysql, который любит случайным образом разбивать время от времени, иногда искажая таблицу по пути вниз.
Ответ 5
Не противоречит любому из приведенных выше рекомендаций, но если по какой-то причине вам действительно нужно или нужно придерживаться MySQL, я недавно заметил, что Heroku теперь предлагает бесплатное дополнение MySQL, называемое ClearDB:
https://addons.heroku.com/cleardb
Не использовал его, поэтому я не могу ручаться за него. Heroku утверждает, что 99.95% времени безотказной работы для бесплатной версии (против 100% времени ожидания, заявленного для любой из платных версий), и они отказываются от бесплатной версии как "готовой продукции". Они утверждают, что ClearDB является "родным, немодифицированным MySQL".
Ответ 6
Я перемещаю одно из своих клиентских Rails-приложений из Heroku Postgresql в Mysql (аддон ClearDB) на данный момент. PostgreSQL является более строгим и более "правильным" службой базы данных во многих отношениях, и, похоже, Heroku одобряет его. Тем не менее, я обнаружил, что структура Rails более или менее сглаживает различия, и большинство приложений Rails не будут настолько большими, чтобы проблемы с производительностью Mysql становились компроматорами.
С другой стороны, PostgreSQL (в частности, предложение Heroku) имеет несколько недостатков для запуска приложения:
- Цена. Чтобы предотвратить еженедельные ошибки "соединение с базой данных" при работе с Postgres Heroku, вам необходимо выложить $200/month. В ClearDB вы получаете обещание 100% времени безотказной работы (у нас еще не было возможности оценить это требование) для плана $10/месяц, который также предлагает 1 ГБ места - больше, чем мы мне когда-нибудь понадобится.
- Порядок столбцов.. При создании Rails я ссылаюсь на файл схемы
schema.rb
каждые 5 минут, и чтобы этот файл был аккуратным и читаемым, я считаю, что важно определить, что должны быть добавлены столбцы заказа. MySQL поддерживает задание порядка столбцов; PostgreSQL этого не делает. Во многих случаях эта функция неважна, но из-за того, как работает Rails/ActiveRecord, моя жизнь становится намного сложнее, когда я не могу переупорядочить столбцы.