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 셋업하는 시간이 거의 모든 경우 도구 본 기능 만드는 시간보다 길었다.
🛒 이 글과 어울리는 추천 상품
위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.