DB 비교하기

hyeo71·2024년 9월 30일
0

CS

목록 보기
2/2
post-thumbnail

SQL DB는 모두 SQL 언어를 사용하지만, 각 DB는 지원하는 기능이 다르고 호환되지 않는 경우가 많다. 그래서 프로젝트에 적합한 DB를 선택하는 것이 중요하다.

아래 3개의 DB를 성능, 편의성 두 가지 측면에서 비교해보도록 하자.

  • 성능: 지원 기능, 작업 처리 능력, 확장성, 한계점(한계에 부딫힐까 걱정되는 부분이 존재하는가)

  • 편의성: 설치, 백업 및 유지 관리


1. SQLite

  • 성능: 3/5
  • 편의성: 5/5

주요 특징

  • 'Lite'는 성능과는 아무 관련이 없으며 실제로 얼마나 가벼운지, 리소스를 얼마나 적게 사용하는지, 설치, 백업 및 사용이 얼마나 쉬운지를 나타내며, 모든 휴대폰, 비행기, 스마트워치 및 IoT 장치에 내장되어 있을 정도로 가벼움.
  • 가벼운 파일 기반 DB로, 설치 및 백업이 매우 간단함.
  • 수백만 개의 행과 기가바이트 단위의 데이터를 처리할 수 있음.
  • 테이블 열 유형이 간단하며, MySQL과 PostgreSQL에 필요한 모든 유지 관리 작업이 필요 없는 점이 장점.
  • 서버 없이 애플리케이션 코드에 통합 가능.
  • 단일 서버에 적합하며, 다중 서버 환경에서는 부적합.

요약

SQLite는 소규모 프로젝트나 단일 서버에서 쉽게 사용할 수 있으며, 유지 보수가 간단한 DB이다. 하지만 다중 서버 환경에서는 한계가 있다.


2. MySQL

  • 성능: 4/5
  • 편의성: 4/5

주요 특징

  • 오랫동안 인기가 많은 견고한 DB.
  • 많은 SQL 기능을 지원하며, 특히 ALTER TABLE 명령, 날짜 및 시간 데이터 유형, JSON 등 SQL 기능이 강점.
  • Oracle의 인수 이후에도 지속적인 업데이트와 버그 수정이 이루어짐.
  • PlanetScale과 같은 강력한 도구로 개발자 경험이 우수함.
  • 백업, 업그레이드, 마이그레이션 등에서 SQLite보다 복잡함.

요약

MySQL은 많은 기능과 안정성을 제공하며 대규모 프로젝트에 적합하지만, 관리가 다소 복잡할 수 있다. PlanetScale 같은 툴을 활용하면 편의성이 증가한다.


3. PostgreSQL

  • 성능: 5/5
  • 편의성: 3/5

주요 특징

  • 가장 진보된 오픈 소스 DB로, 많은 개발자가 선호.
  • 확장 기능이 매우 강력하며, NoSQL 키-값 저장소로 전환(hstore)하거나, DB 트리거(plpython3u: SQL 쿼리에 python 코드를 작성할 수 있음)와 같은 고급 기능을 제공.
  • 다양한 확장 기능으로 DB의 기능을 크게 확장할 수 있음(pgvector: 벡터 DB로 변환, PostGIS: 지리공간 데이터, pg_cron: DB 내에서 작업을 예약 등 pgxn.org 같은 웹사이트 참고)
  • 확장 기능을 많이 사용할 경우 시스템이 복잡해질 수 있음.

요약

PostgreSQL은 강력한 기능과 확장성을 제공하지만, 복잡한 시스템 구조로 인해 관리가 어려울 수 있다. 고성능과 다양한 기능을 필요로 하는 프로젝트에 적합하다.


결론

  • SQLite: 유지 보수와 간편한 관리가 중요한 소규모 프로젝트에 적합.

  • MySQL: 대중적인 선택으로, 기능이 풍부하고 대규모 프로젝트에도 적합.

  • PostgreSQL: 고성능과 확장성이 필요한 프로젝트에 이상적이지만, 관리가 복잡할 수 있음.


Reference

nomad coders - DB 고민 끝내드림 💥
Jake Seo tistory blog - PlanetScale 정리

0개의 댓글