← 모든 글

SQLite vs Postgres — 작은 도구의 기본

작은 내부 도구는 SQLite 가 거의 항상 답이지만, 그 "거의" 의 경계.

URL 단축기, 메트릭 그래프 봇, 슬랙 dedup — 모두 SQLite 로 시작했다. 그 중 한 개를 Postgres 로 옮긴 사연.

옮긴 도구

슬랙 dedup 봇. 슬랙 메시지의 hash 키 + ttl 을 5분 단위로 저장. 처음엔 SQLite WAL 모드로 충분했다.

그런데 슬랙 워크스페이스가 커지면서 동시 INSERT 가 분당 200건을 넘겼다. SQLite 의 writer lock 이 가끔 200ms 까지 걸렸고, 슬랙 retry 가 들어왔다. Postgres 로 옮기는 데 1시간.

경계

  • 동시 writer 가 1개 미만 (실질적으로): SQLite
  • 그 이상이거나 multi-process: Postgres
  • 데이터 < 1GB, 단일 머신: SQLite
  • 그 이상이거나 분산 접근: Postgres

다음에는 다르게 할 한 가지

작은 도구는 SQLite 로 시작하고 측정 후 옮긴다. 처음부터 Postgres 셋업하는 시간이 거의 모든 경우 도구 본 기능 만드는 시간보다 길었다.


🛒 이 글과 어울리는 추천 상품

위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.