문제

Python (Django)을 사용하는 웹 애플리케이션을 작업 중이며 프로덕션에 배포 할 때 MySQL 또는 PostgreSQL이 더 적합한 지 알고 싶습니다.

팟 캐스트 에서 Joel은 MySQL에 몇 가지 문제가 있지만 데이터는 그렇지 않다고 말했습니다.일관된.

누군가 그런 문제가 있었는지 알고 싶습니다.또한 쉽게 조정할 수있는 성능에 관해서는?

도움이 되었습니까?

해결책

미래 독자를위한 참고 사항 : 아래 텍스트는 2008 년 8 월에 마지막으로 수정되었습니다. 수정 된 지 거의 5 년 전입니다. 소프트웨어는 버전마다 빠르게 변경 될 수 있으므로 아래 조언에 따라 DBMS를 선택하기 전에 몇 가지 조사를 수행하여 여전히 정확한지 확인하십시오. <시간>

더 나은가요?

MySQL은 웹 호스트에서 훨씬 더 일반적으로 제공됩니다.

PostgreSQL은 훨씬 더 성숙한 제품입니다.

"더 나은"질문을 다루는이 토론 이 있습니다.

분명히 이 웹 페이지 에 따르면 MySQL은 동시 액세스 수준이 낮고 쓰기보다 읽기가 더 많을 때. 반면에로드 및 쓰기 / 읽기 비율이 증가함에 따라 확장 성이 낮습니다. PostgreSQL은 낮은 동시성 수준에서 상대적으로 느리지 만로드 수준이 증가하면 잘 확장되며 동시 액세스간에 충분한 격리를 제공하여 높은 쓰기 / 읽기 비율에서 속도 저하를 방지합니다. 이러한 것들은 조건에 매우 민감하기 때문에 여러 성능 비교와 연결됩니다.

결정 요소가 " 어느 쪽이 더 빠릅니까? "라면 대답은 "상황에 따라 다릅니다. 정말 중요한 경우 두 가지 모두에 대해 애플리케이션을 테스트하세요. " 그리고 정말로 관심이 있다면 두 명의 DBA (각 데이터베이스를 전문적으로 다루는 한 명)를 확보하고 데이터베이스에서 쓰레기를 조정하도록 한 다음 선택합니다. DBA가 좋은 비용이 많이 드는 것은 놀랍습니다. 그리고 1 센트마다 가치가 있습니다 .

중요한 경우.

아마 그렇지 않을 것입니다. 그러니 마음에 드는 데이터베이스를 선택하고 함께 사용하십시오. 더 많은 RAM과 CPU, 더 적절한 데이터베이스 설계, 영리한 저장 프로 시저 트릭 등으로 더 나은 성능을 구매할 수 있습니다.이 모든 것이 MySQL 또는 PostgreSQL 중에서 선택하는 것보다 random-website-X에서 더 저렴하고 쉽습니다. , 값 비싼 DBA의 전문가 튜닝

<시간> Joel은 또한 그 팟 캐스트에서 사람들이 MySQL이 쓰레기라고 말할 것이기 때문에 댓글이 다시 올 것이라고 말했습니다. Joel은 행의 유전자 태그 코드를 다시 가져올 수 없습니다. 복수의 일화는 데이터가 아닙니다. 그는 말했습니다 :

<인용구>

MySQL은 데이터 무결성 문제가있는 내 경력에서 프로그래밍 한 유일한 데이터베이스입니다. 여기서 쿼리를 수행하고 말도 안되는 답변을받을 수 있습니다.

또한 다음과 같이 말했습니다. <인용구>

일 화일뿐입니다. 그리고 그것은 실제로 블로깅이나 일반적인 인터넷에 대해 저를 좌절시키는 것 중 하나입니다. [...] 일화를 진실로 만드는 이상한 경향이 있으며 실제로 블로거로서 저는 이것에 대해 약간의 죄책감을 느끼기 시작했습니다

다른 팁

일부는 MySQL이 간단하고 빠르다고 말합니다.

빠름-기본 MyIsam 스토리지 엔진을 사용하면 빠릅니다. 심각한 데이터베이스 기능이 거의 없지만 빠릅니다. 내가 냉소적이라면 플랫 파일의 grep도 빠르다고 말하고 싶습니다. 재미있게도 MyIsam이 데이터를 저장하는 방법과 그리 멀지 않습니다. 따라서 관계형 데이터베이스 기능을 기대하지 마십시오. 무결성 제약도 참조하지 않습니다.

단순-이제 실제 데이터베이스 기능의 공정한 하위 집합을 원한다고 가정 해 보겠습니다. 무결성 제약, 트리거, 트랜잭션 격리, 기능 색인과 같은 것들이 있습니까? 따라서 분명히 MyIsam 엔진을 버리고 주요 3 개의 다른 스토리지 엔진 중 하나를 선택해야합니다. 각기 다른 공급 업체에서 개발했으며 각각 특정 구성 / 동작이 있습니다.

스토리지 엔진 개요 그리고 두통이 없다면 MySql이 귀하의 관점에서 간단하다는 데 동의합니다.

이러한 사실을 바탕으로 MySql이 빠르고 간단하다고 말하는 사람들에 대해 마음을 갖게하겠습니다.

더 확장하고, 시간을 절약하고, 이상한 버그를 줄이고, 더 간단한 애플리케이션 코드를 갖고, 데이터베이스와 싸우지 않고 비즈니스를 최적화하는 데 더 많은 시간을 투자하고 싶다면 Postgresql을 선택하는 오픈 소스 솔루션을 선택하십시오.

저는 Django를 사용하지 않았지만 MySQL과 PostgreSQL을 모두 사용했습니다.Django의 백엔드로만 데이터베이스를 사용한다면 대부분의 차이점을 추상화하기 때문에 그다지 중요하지 않습니다.PostgreSQL은 좀 더 확장 성이 뛰어납니다 (데이터 크기 / 클라이언트 수가 증가함에 따라 MySQL만큼 빠르게 벽돌 벽에 부딪히지 않습니다).

새로운 시스템을 사용하는 경우 진정한 차이가 있습니다.그런 다음 PostgreSQL을 권장합니다. DB 계층을 훨씬 더 사용자 정의 할 수있는 훨씬 더 많은 기능이 있으므로 필요한 모든 요구 사항에 맞게 미세 조정할 수 있습니다.

몇 달 후 곧 울립니다.

두 데이터베이스의 지리적 기능은 매우 다릅니다.PostgreSQL에는 뛰어난 PostGIS 확장 기능이 있습니다.MySQL의 지리적 기능은 비교해 볼 때 사실상 제로입니다.

웹 서비스에 위치 구성 요소가있는 경우 PostgreSQL을 선택합니다.

약간 구식이지만 MySQL Gotchas 를 읽어 볼 가치가 있습니다.페이지.내가 아는 한 여기에 나열된 많은 항목이 여전히 사실입니다.

PostgreSQL을 사용합니다.

둘 다 광범위하게 사용합니다.특정 프로젝트에 대한 나의 선택은 다음과 같이 요약됩니다.

  • 라이선스-앱을 배포 하시겠습니까 (IANAL)
  • 기존 인프라 및 기술 자료
  • 필요한 모든 특수 소스

    특수 소스 로 다음과 같은 것 :

    • 쉽고 저렴한 복제= MySQL
    • 작은 결과가있는 거대한 데이터 세트 문제= PostgreSQL.언어 확장을 사용하고 매우 효율적인 데이터 작업을 수행합니다.(PL / Python, PL / TCL, PL / Perl 등)
    • R 통계 라이브러리와의 인터페이스= PostgreSQL PL / R debian / ubuntu에서 사용 가능

글쎄요, 과거의 개발 (빌드, 스테이징, 프로드)에서 다른 데이터베이스 브랜드를 사용해서는 안된다고 생각합니다.

내가 이해하는 방식에서 PostgreSQL은 더 '올바른'데이터베이스 구현 인 반면 mySQl은 덜 정확하지만 (준수 성이 낮지 만) 빠릅니다.

따라서 CRUD 애플리케이션을 작성하는 경우 mySQL을 사용하는 것이 좋습니다.데이터베이스에서 특정 기능이 필요한 경우 (확실하지 않은 경우) postgreSQL을 살펴볼 수 있습니다.

여러 서버에 상당히 분산 될 수있는 애플리케이션을 작성하는 경우 MySQL은 이식성 때문에 PostgreSQL보다 많은 비중을 차지합니다.PostgreSQL은 만족스럽지 않은 웹 호스트에서 찾기가 어렵지만 몇 가지가 있습니다.대부분의 경우 PostgreSQL은 MySQL보다 느립니다. 특히 최종적으로 미세 조정에 관해서는 더욱 그렇습니다.대체로 PostgreSQL에 짧은 시간 동안 기회를 주겠다고 말하고 싶습니다. 그렇게하면 완전히 피하지 않고 판단을 내릴 수 있습니다.

감사합니다.MySQL과 함께 Django를 사용했는데 괜찮습니다.필요한 기능에서 데이터베이스를 선택하십시오.MySQL과 Postgres를 비교하기가 어렵습니다.Postgress와 SQl Server를 비교하는 것이 좋습니다.

@WolfmanDragon

PostgreSQL은 객체에 대한 (작은) 지원을 제공하지만 본질적으로 관계형 데이터베이스입니다. 정보 페이지 에서 : <인용구>

PostgreSQL은 강력한 오픈 소스 관계형 데이터베이스 시스템입니다.

MySQL은 관계형 데이터베이스 관리 시스템 이며 PostgreSQL은 객체 -관계형 데이터베이스 관리 시스템 .PostgreSQL은 쿼리 작성 방법을 더 많이 제어 할 수 있기 때문에 C ++ 또는 Java 개발자에게 적합합니다.ORDBMS는 또한 우리에게 객체와 사용자 정의 유형을 제공합니다.SQL 쿼리 자체는 MySQL보다 ISO 표준에 훨씬 더 가깝습니다.
ORDBMS 또는 RDBMS가 필요합니까?그러면 질문에 더 잘 대답 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top