Django에서 database로 mysql이 아닌 postgres를 많이 쓰는것같은데,

 
Juram Park

Django에서 database로 mysql이 아닌 postgres를 많이 쓰는것같은데, 특별한 이유가 있을까요 ?

  • Jaeyoung Lee

    mysql도 많이 사용해요. 다만 pg 에는 json이나.. 배열같은 칼럼작성이 가능하고 표현식 색인을 이용해서 그 json 객체 내의 값도 색인해서 사용할 수 있는것으로 알고 있어요.

    Jacob Seongwoon Lee

    http://www.quora.com/Django-web-framework/Why-does-the-Django-community-generally-use-PostgreSQL-over-MySQL#

    Juram Park

    감사합니다~!

    Kenial Lee

    quora에 안 나온 내용 중 하나를 꼽자면 utf8mb4 이슈(http://pjambet.github.io/blog/emojis-and-mysql/ 참고) 같은게 있고요.

    전반적으로 봤을 때 PostgreSQL을 사용하면, 초기 세팅이 MySQL에 비해 약간 번거롭다는 느낌이 들지만 개발 진행하면서는 자잘한 이슈가 덜해서 스트레스를 덜 받는 느낌이었습니다.

    근거가 뭐냐고 물으신다면… 그냥 제 주관적으로 utf8mb4 + transaction + full-text search 이슈에 걸려 개고생을 했기 때문이라고 답하겠습니다;;;

    Donghyun Cho

    Django에서 권장하는 데이터베이스며, Django Framework에서도 postgreSQL을 기본으로 사용하며 개발한다고 들었습니다. 또한, 데이터를 스토어하고 추출하는 방식이 다르고, 지원하는 데이터 형식도 많습니다. 예를들면 ltree 등. MySQL에선 CTE도 지원을 안하고 전반적으로 많이 느려요.
    Unicode를 사용하는 필드에 index를 사용하는 경우, max length가 250여 자 밖에 되질 않습니다. Psql에서 사용되는 모든 text 관련 필드들은 max length가 text field처럼 제한이 없다네요. unicode와 index 사용시 1024 max를 권장합니다. 저도 MySQL에서 PostgreSQL로 갈아탔는데 확실히 빨라요. 대신 Clustered Index가 기본으로 적용되지 않아 Order by를 하셔야 하며, psycopg2에 있는 all()필터에 버그가 있어서, 조심히 사용하셔야 합니다. 최신 버전에서 고쳐졌는지 모르겠네요. 아무튼, 중요한건 개발환경에 맞는 걸 골라서 사용하는게 좋겠죠.

Advertisements