본문 바로가기

[내일배움캠프]스파르타코딩클럽 AI 웹개발/Today I Learned

[TIL] 프로젝트 데이터베이스 선택: MySQL을 채택한 이유와 PostgreSQL과의 비교

우리 프로젝트에 MySQL을 선택한 이유

우리 프로젝트는 영화에 대한 평점과 리뷰를 남길 수 있는 웹사이트로, Django REST Framework(DRF)를 이용해 백엔드 서버를 개발할 예정이다. 기본적으로 제공되는 SQLite 대신, PostgreSQLMySQL 중에서 고민하다가 MySQL을 사용하기로 결정했다. 두 데이터베이스 간의 차이점과, 프로젝트에서 MySQL을 선택한 이유는 다음과 같다.

 

 

PostgreSQL vs. MySQL: 차이점

  1. ACID 준수와 트랜잭션 처리:
    • PostgreSQLACID(Atomicity, Consistency, Isolation, Durability) 규칙을 철저히 준수하며, 고급 트랜잭션 처리 및 복잡한 쿼리에서 강력한 성능을 발휘한다. 특히 관계형 데이터 모델에서의 복잡한 연산이나 트리거, 함수 등 고급 기능을 자주 활용하는 경우에 적합하다.
    • MySQL도 ACID 규칙을 지원하지만, 단순 쿼리대량의 읽기/쓰기 작업에 더 최적화된 경향이 있어, 실시간으로 데이터를 많이 처리하는 웹 애플리케이션에 적합하다.
  2. 확장성 및 성능:
    • PostgreSQL은 대규모 데이터 처리나 분석이 필요한 상황에 뛰어난 성능을 발휘하며, 다중 관계형 데이터와 복잡한 조인 작업에 적합하다.
    • MySQL읽기/쓰기 성능이 균형 잡혀 있고, 특히 다수의 트랜잭션이 빈번히 발생하는 웹 기반 서비스에서 높은 성능을 보여줍니다. 우리 프로젝트와 같은 사용자 리뷰와 평점 입력이 빈번한 상황에서 적합한 선택이다.
  3. 표준 준수 및 유연성:
    • PostgreSQLSQL 표준을 더 철저하게 준수하며, JSON 데이터 타입이나 NoSQL 스타일의 데이터를 다루는 데 유연하다.
    • MySQL은 표준 SQL 준수보다는 성능과 속도에 집중해, 실시간 웹 애플리케이션에서 빠르게 데이터를 처리하는 데 중점을 둔다.

우리 프로젝트에 MySQL이 적합한 이유

  1. 대규모 트랜잭션 처리에 적합: MySQL은 평점과 리뷰 데이터가 대량으로 쌓이고, 이를 실시간으로 처리해야 하는 환경에서 뛰어난 성능을 발휘한다.
  2. 읽기/쓰기 성능의 균형: 사용자들이 빈번하게 데이터를 입력하고 조회하는 패턴에 적합하게 읽기와 쓰기 성능이 모두 우수하다.
  3. 관리 및 유지 보수 용이성: MySQL은 관리 도구와 인터페이스가 직관적이어서 데이터베이스 관리가 쉽고, 오픈 소스 커뮤니티의 지원도 활발해 문제 해결에 유리하다.
  4. 비용 효율성: MySQL은 오픈 소스로 비용 부담이 적으며, 상용 환경에서도 안정적으로 사용 가능하다.
  5. 높은 호환성: MySQL은 다양한 플랫폼과 호환되며, 특히 많은 웹 애플리케이션에서 널리 사용되어 있어 검증된 안정성을 보장한다.

이러한 이유들로, 우리 프로젝트의 특성과 요구 사항에 맞춰 MySQL을 사용하는 것이 더 적절하다고 판단했다.