SQLite 3.48 정식 출시
세계에서 가장 널리 사용되는 임베디드 데이터베이스 SQLite가 3.48 버전을 정식 출시했다. 이번 릴리스의 하이라이트는 JSONB(JSON Binary) 저장 형식의 도입이다. JSON 데이터를 텍스트가 아닌 바이너리로 저장하여 읽기·쓰기 성능을 획기적으로 향상시켰다.
JSONB로 JSON 성능 혁신
기존 SQLite의 JSON 지원은 텍스트 기반이었다. JSON 데이터를 조회할 때마다 텍스트를 파싱해야 했기 때문에 성능 오버헤드가 컸다. JSONB는 삽입 시 한 번만 파싱하고, 이후 조회에서는 바이너리를 직접 읽어 파싱 비용을 제거한다.
- json_extract() 성능: 기존 대비 최대 10배 향상
- json_set() 성능: 부분 업데이트 시 5배 이상 향상
- 저장 공간: JSONB가 텍스트 JSON 대비 평균 15% 절약
- 호환성: 기존 JSON 함수와 완벽 호환, 자동 변환 지원
마이그레이션 가이드
기존 JSON 텍스트 컬럼을 JSONB로 전환하는 것은 간단하다. ALTER TABLE 없이 jsonb() 함수로 래핑하면 자동 변환된다. 다만, JSONB 컬럼은 직접 읽을 때 바이너리이므로 json() 함수로 텍스트 변환이 필요하다. 이 점만 주의하면 기존 쿼리를 거의 수정 없이 사용할 수 있다.
기타 개선사항
3.48에서는 JSONB 외에도 주목할 변경이 있다. STRICT 모드 테이블에서의 CHECK 제약 조건 성능이 개선되었고, 윈도우 함수의 메모리 사용량이 줄었다. 또한 WAL 모드에서의 동시 읽기 성능이 향상되어, 고부하 환경에서의 안정성이 높아졌다.
모바일·IoT 생태계 영향
SQLite는 모든 스마트폰에 탑재되어 있을 정도로 편재하는 데이터베이스다. JSONB 도입은 모바일 앱에서 JSON 데이터를 로컬에 캐싱하는 패턴에 직접적인 성능 이점을 제공한다. React Native, Flutter 등 크로스플랫폼 프레임워크에서 SQLite를 로컬 스토어로 사용하는 개발자들에게 반가운 소식이다.
댓글 0