Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

안녕하세요? ^^

 

주말 잘 보내고 계시는지요?

 

 

다름이 아니라 라이믹스, 그누보드 등 CMS에서 MySQL 대신 PostgreSQL을 사용하면

 

게시글이 10만 개가 넘는 웹사이트의 경우에 유저 입장에서 체감할 수 있는 퍼포먼스 향상이 있을까요? ^^

 

1) 벤치 결과를 보면 대체로 복잡한 쿼리에서 PostgreSQL이 상대적으로 더 높은 성능을 보이는 경향이 있고,

 

2) PostgreSQL에서는 n-gram search도 예전부터 지원해왔죠.

 

 

문법적인 차원에서도 PostgreSQL이 SQL 표준에 보다 근접한 것으로 보이고,

 

라이선스도 MIT와 유사하여 문제 발생의 소지가 적습니다.

 

위와 같은 이유에서 북미나 일본에서는 PostgreSQL의 점유율이 꽤 높은 것으로 알고 있습니다.

 

인스타그램 등 다수의 상용서비스에서도 PostgreSQL을 사용하고 있다고 명시적으로 밝히고 있구요.

 

https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c

 

 

다만 기본적인 CRUD에서는 MySQL이 비교우위에 있는 것 같습니다.

 

게시글 10만 개가 넘어가는 중형 사이트에서 CRUD에서의 퍼포먼스 손해를 감수하더라도

 

PostgreSQL을 선택할 만한 가치가 있을지 여쭤봅니다 :)

 

물론 MySQL을 PostgreSQL로 튜닝하는 과정이 만만하지 않겠지만요.

 

답변해주실 분들께 미리 감사드립니다.

 

그럼 즐거운 주말 오후 되세요! ^-^

  • profile

    놀랍게도 mysql도 ngram이 된답니다.
    저는 성능상의 이슈로 php나 mysql 이 망할줄 알았거든요. 그런데 시간이 지나고, 그냥 성능 자체를 올려 버리더라구요.

    예를 들어 저희 회사에서 쓰는 aurora-mysql 의 경우, 기존 mysql 보다 최소 4배 빠르거든요. AWS에서 만든건데, 애플처럼 소프트웨어와 인프라(하드웨어)를 결합해서 최적화해서 성능을 끌어 올렸습니다. 실시간 서버성능 분석과, 1초단위 백업도 가능합니다.
    저도 예전에 PostgreSQL 도입을 검토해 본적이 있는데, 얻는 이득은 미미한데, 손실은 너무 크더라구요.

     

    기존의 MySQL에서 성능을 개선하기 위해서는 엔진이 개선된 버전을 찾아보세요.

  • profile profile
    오오~ 라엘 님의 경험에서 우러나오는 말씀 감사드립니다! ^-^
    MySQL 5.7.6.부터 한글에 대응 가능한 n-gram pasrer가 도입되었던가요??
    우아한 형제들에서도 Aurora-MySQL을 주력으로 사용하고 있다고 알고 있네요 ㅎㄷㄷ
    라엘 님 말씀을 참고하여 PostgreSQL 사용은 보류하겠습니다!!
    다시 한 번 감사드립니다 :)
    그럼 즐거운 주말 저녁 되세요오~ ^^
  • profile profile
    제가 테스트 해본것중 mysql 인터페이스 호환 엔진중 가장 빠른건 memsql 이었습니다.
    https://www.singlestore.com/ 에서 있고, 직접설치 1카피는 무료입니다.
    메모리를 엄청 사용해서 검색하는건데, 제가 테스트할 당시에는 aurora-mysql보다 성능이 10배 이상 빨랐습니다.
    한번 체험해 보시는 것을 추천드려요~
  • profile profile
    오오~ 정말 감사합니다! ^-^
    말씀해주신 사이트에 들어가서 보니 Self-managed Standard 버전은 1카피 무료네요~!
    InnoDB나 XtraDB 이외에는 별다른 엔진을 생각하지 못하고 있었는데
    라엘 님 덕분에 큰 도움이 되었습니다 :)
    그럼 편안한 주말 저녁 되시고 다음주도 홧팅홧팅이에요오~! ^^
  • profile

    게시물 1억 개가 넘어도 MySQL에서 아무 문제 없습니다. 적당한 사양의 서버에 튜닝만 잘 하면 돼요. 흔히 사용하는 대부분의 쿼리는 CRUD이기 때문에 MySQL이 오히려 이득이고, sql_mode 설정을 통해 SQL 표준에 무척 근접한 동작도 구현할 수 있지요.

     

    PostGIS와 같은 고급 기능이나 압도적인 안정성을 위해 PostgreSQL을 쓸 수는 있어도, 성능이나 라이선스 때문에 쓰는 것은 아니예요.

  • profile profile

    기진곰 님 안녕하세요? ^^
    제가 SQLD 시험을 준비하다보니 잠시 MySQL 이외의 다른 DB로의 외도(?)를 했던 것 같네요~

    생각해보니 기진곰 님 말씀처럼 실제 웹사이트 운영에 있어 대부분의 쿼리는 CRUD이기 때문에
    PostgreSQL로 뜯어고치는 튜닝보다는, MariaDB를 적절히 튜닝하는 방향으로 시도해보겠습니다 :)

    (제가 할 수 있는 선에서 노력해보고 의뢰를 드리겠습니다 ㅠㅠ)

    덕분에 시간을 절약하게 되어서 정말 감사드립니다!!
    그럼 저녁식사 맛있게 드시고 편안한 주말 저녁 되세요~ ^-^

  • profile ?
    Postgresql 에는 DB 자체에 커넥션 풀이 있다고 들었는데요 (PGpool)
    php는 커넥션풀이 없으니 postgresql + pgpool 이면 커넥션풀이 있으니
    mysql 보다는 성능에 도움되려나요?
  • ? profile
    MySQL은 연결 및 인증 과정이 PostgreSQL보다 훨씬 빠르게 진행되므로 (자주 커넥션을 열었다 닫았다 하는 웹 어플리케이션에 최적화됨) 웬만하면 커넥션 풀이 필요하지 않습니다. 특히 DB가 웹과 같은 서버에 있다면 TCP가 아닌 소켓통신을 하는 localhost가 압도적으로 빨라요.
  • profile ?
    그렇군요! 감사합니다