2010-12-09 4 views
32

나는 Heroku와 함께 사용하기 위해 Postgresql에 MySQL 특정 코드를 포팅하는 중입니다. 왜 Heroku가 PostgreSQL을 MySQL과 함께 사용하는지 구체적인 이유가 있는지 궁금합니다. 성능, 아키텍처 등?왜 Heroku는 Postgresql을 사용합니까?

UPDATE하십시오 Heroku가 blog post에서 : Heroku가에서

, 우리는 PostgreSQL을가 강력한 기능, 데이터 무결성, 속도, 표준 준수 및 모든 SQL 데이터베이스의 오픈 소스 코드의 최상의 조합을 제공 믿는다 행성에.

+1

강력한 기능 중 하나는 PostgreSQL의 PostGIS 확장이며 매우 강력한 공간 기능을 제공합니다. 우리는 이것을 MongoDB를 기본 키 - 값 저장소로 사용하는 보조 DBMS로 사용하고 있습니다. – wulfgarpro

답변

25

many ways에서 Postgres가 mysql보다 좋습니다. mysql에서 postgres 로의 마이그레이션 레일 앱에 대한 게시물을 읽을 수 있습니다. 비록 mysql이 포스트그레스보다 more popular이지만 instagram is using 포스트 그레스는 these 이유 때문일 수 있습니다. 나는 postgres가 mysql보다 훨씬 성숙하고 견고하다고 느낀다. mysql은 사용하기가 쉽고 간단합니다.

Migrating MySQL to PostgreSQL in Rails « m i n d l e v

데이터 마이그레이션에 대한

Converting Rails application data from MySQL to PostgreSQL

, 쉽고 간단한 스크립트를 Rake task to transfer a Rails database, say from MySQL to Postgres and back again

+1

링크를 제공해 주셔서 감사합니다. 나는 심지어 대부분의 신생 기업들이 mysql보다 포스트그레스를 선택한다고 말하는 것은 멀쩡하다고 생각하지 않는다. 나는 MySQL (그리고 cassandra와 mnesia)를 사용하는 신생 기업에서 일한다. 야후와 아마존과 같은 다수의 거대 기업도 MySQL을 사용합니다. – markquezada

+0

그래, 그건 사실이 아니야. 페이스 북과 트위터는 초창기에도 MySQL을 사용합니다. –

+0

내 잘못입니다. 약간의 연구가 끝나면 mysql이 더 많이 사용된다. 나는 계곡에서 2 명의 신생 기업을 위해 일했고 두 사람 모두 포스트그레스를 사용했습니다. 그래서, 거기에 편향된 것이 있습니다. 답변을 업데이트 중입니다. – zengr

5

일반적으로 Postgres의 성능은 ORM에 의해 생성되는 종류와 같은 복잡한 쿼리의 경우 더 좋습니다. 또한, 포스트그레스는 "견고한"경향이 있습니다. 이것은 ancedotal이지만 내가 관리해온 포스트 그레스 서버는 항상 무작위로 충돌하는 것을 좋아하는 mysql보다 문제가 적 었으며 때때로 테이블을 손상 시켰습니다.

+0

저는 postgres가 더 견고하다는 말을 (일화 적으로) 들었습니다. 나는 그들이 무엇을 결정했는지 궁금해. – markquezada

+3

네, 그게 정확히 제가 넣은 방법입니다. 이 전체 시스템은 문서를 포함하고 있습니다. 단단한 엔지니어링의 냄새가 나는 반면, MySQL은 항상 "어, 웹에 충분합니다"라고했습니다. –

6

은 일반적으로 내가 pgSQL의 24/7 운영에 MySQL을보다 더 빌려 준다 찾을 말하기. 또한 발걸음이 적다. 나는 당신이 하나 또는 다른 것에 더 익숙하다면 그 무엇보다 당신의 결정에 영향을 미칠 가능성이 더 많다고 생각합니다.

+4

+1 "footgun"이라는 용어의 사용. MySQL은 타임 스탬프를 자동으로 늘리거나 지정한 varchar 길이보다 긴 데이터를 자르는 것보다는 실제 데이터베이스 인 것처럼 모든 엄격한 옵션을 설정하면 훨씬 좋습니다. Postgres는 기본적으로 제대로 작동합니다. –

0

위의 조언의 모순,하지만 경우에 당신이 정말로 원하는 또는 MySQL을 고수 할 필요가 어떤 이유로, 나는 최근에 Heroku가 지금 무료로 MySQL이 부가 기능, ClearDB라고 제공하고 있음을 알 수 없음 :

https://addons.heroku.com/cleardb

사용하지 않았으므로 보증 할 수 없습니다. Heroku는 무료 버전에 대해 99.95 % 가동 시간을 요구하며 (100 % 가동 시간은 유료 버전에 대해 청구 됨) 무료 버전을 "Production Ready"로 제공하지 않습니다. ClearDB는 "수정되지 않은 네이티브 MySQL"이라고 주장합니다.

0

저는 클라이언트의 레일즈 애플리케이션 중 하나를 Heroku Postgresql에서 Mysql (ClearDB 애드온)으로 옮깁니다. PostgreSQL은 여러 가지면에서보다 엄격하고보다 정확한 "데이터베이스 서비스"로, Heroku가이를지지하는 것으로 여겨집니다. 그러나 Rails 프레임 워크는 차이점보다 다소 부드러워졌으며 대부분의 Rails 앱은 MySQL의 성능 문제가 딜 브레이커가 될 정도로 커지지 않습니다.

  • 가격 : (특히 Heroku가의 제공에서) 다른 한편으로, PostgreSQL을에

    는 시작 응용 프로그램에 대한 몇 날카로운 단점이있다.
    Heroku Postgres로 작업 할 때 매주 "데이터베이스 연결이 끊어진"오류를 방지하려면 $ 200/달을 쉘 아웃해야합니다. ClearDB에서 $ 10/month 계획에 대해 100 % 가동 시간 약속 (아직이 요구 사항을 평가할 기회가 없었 음)을 얻었습니다.이 계획은 1GB 공간도 제공합니다.
  • 열 순서. Rails를 개발할 때마다 schema.rb 데이터베이스 스키마 파일을 5 분마다 참조하고이 파일을 깔끔하고 읽기 쉽게 유지하려면 어떤 순서 열을 추가해야 하는지를 지정할 수 있어야합니다. MySQL은 열 순서 지정을 지원합니다 ; PostgreSQL은 그렇지 않습니다. 대부분의 경우이 기능은 중요하지 않지만 Rails/ActiveRecord가 작동하는 방식 때문에 열을 재정렬 할 수 없으면 내 인생이 훨씬 어려워집니다.