놀랄 사람 없는 숫자들 — 너무 커서
SQLite의 한계 수치는 웬만한 앱이 부딪히는 지점보다 한참 위에 있어. 알아둘 건 이 정도야.
- DB 크기 — 최대 281 TB, 그러니까 2^48 byte야. page size에 최대 page 수를 곱한 값인데, 이 숫자는 page size를 최대치인 65536으로 잡았을 때 나와. 기본값인 4096으로 두면 43억 page를 다 채워도 17 TB쯤에서 멈춰.
- row 크기 — row 하나에 약 1 GB야. 성능을 생각하면 실질적인 한계는 훨씬 아래고.
- String과 BLOB 컬럼 길이 — 기본 1 GB인데 바꿀 수 있어.
- 컬럼 수 — 기본 2,000개고, 더 늘리려면 다시 컴파일해야 해.
- DB 하나에 들어가는 테이블 수 — 수십억이라 사실상 한계가 아니야.
- 동시 writer — 파일마다 한 번에 하나야. 이게 네가 실제로 부딪힐 한계고, 크기가 아니야.
Tip: SQLite의 크기 한계가 걱정된다면, 거의 언제나 writer가 하나뿐이라는 한계에 먼저 부딪히게 돼. 그쪽을 돌아갈 계획부터 세워. tenant별로 쪼개거나, write를 묶어서 처리하거나, 뜨거운 데이터와 찬 데이터를 나누는 식으로. 281 TB 천장을 걱정하기엔 아직 한참 멀었어.