C.W.K.
Stream
Lesson 04 of 10 · published

SQLite Limits

~10 min · limits, scale, production

Level 0Scout
0 XP0/80 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

아무도 안 놀라는 숫자 (거대해서)

SQLite hard limit 이 대부분 앱이 hit 하는 거 한참 너머. 알아둘 것:

  • DB 사이즈 — 281 TB (2^48 byte). page-size × max-page-count. 기본 page size 4096 × max 43 억 page.
  • Row 사이즈 — row 당 ~1 GB. 성능엔 실제 limit 더 낮음.
  • String/BLOB 컬럼 길이 — 기본 1 GB, configurable.
  • 컬럼 수 — 기본 2,000; 올리려면 recompile.
  • DB 당 테이블 — 수십억, 실제 limit X.
  • 동시 writer — 파일당 한 번에 하나. 이게 보통 hit 하는 limit, 사이즈 X.
Tip: SQLite 사이즈 limit 걱정이면 거의 항상 single-writer limit 먼저 만남. 그거 둘러서 계획 — tenant 별 sharding, write batching, hot/cold 데이터 분리 — 281 TB ceiling 걱정하기 한참 전.

Code

본인 빌드의 실제 limit 검사·sql
PRAGMA page_size;
PRAGMA max_page_count;
SELECT page_size * max_page_count AS max_db_bytes FROM
  (SELECT 4096 AS page_size, 4294967294 AS max_page_count);
-- 17,592,186,040,320  (~17 TB — 더 늘리려면 max_page_count 증가)

External links

Exercise

Implementation limits page 읽기. 본인 제품 하나에 10x 현재 스케일에서 어느 limit 이 실제로 제약되는지 식별. 대부분 프로젝트가 못 찾음 — 실제 병목 (write 처리량, query latency, 배포 모양) + SQLite 가 이슈 되기 전 뭐 바꿀지 적기.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.