# JSONB 지원을 포함한 SQLite 3.45 출시

> Clean Markdown view of GeekNews topic #12891. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=12891](https://news.hada.io/topic?id=12891)
- GeekNews Markdown: [https://news.hada.io/topic/12891.md](https://news.hada.io/topic/12891.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-01-16T10:35:20+09:00
- Updated: 2024-01-16T10:35:20+09:00
- Original source: [sqlite.org](https://www.sqlite.org/changes.html#version_3_45_0)
- Points: 6
- Comments: 1

## Topic Body

### SQLite 릴리스 요약

- SQLite는 **SQLITE_RESULT_SUBTYPE** 속성을 추가하여 애플리케이션 정의 SQL 함수에 대한 지원을 강화함.
- JSON SQL 함수는 새로운 내부 파싱 트리 형식인 **JSONB**를 사용하여 개선됨.
- 쿼리 플래너는 인덱스 선택 시 더 나은 판단을 내리고, **SQLITE_DIRECT_OVERFLOW_READ** 최적화가 기본적으로 활성화됨.
- CLI는 UTF-8 콘텐츠 표시 개선 및 ".dump" 스크립트 재생 감지 자동화를 포함하여 개선됨.

### 버그 수정 및 최적화

- 다양한 버그 수정 및 성능 최적화가 이루어짐.
- 새로운 C 언어 API, **sqlite3_get_clientdata()** 및 **sqlite3_set_clientdata()**가 추가됨.
- **PRAGMA integrity_check** 명령은 이제 내장 가상 테이블의 일관성을 검증함.
- 쿼리 플래너는 부분 인덱스 스캔 및 DISTINCT 서브쿼리에 대한 처리를 개선함.

### SQLite CLI 및 기타 기능 개선

- CLI는 UTF-8 콘텐츠 표시를 개선하고, 위험한 SQL 함수 사용을 제한함.
- **PRAGMA integrity_check** 명령은 텍스트 문자열과 인덱스 간의 일치 여부를 검증함.
- **sqlite3_stmt_scanstatus_v2()** 인터페이스가 추가됨.
- **sqlite3_prepare()**와 유사한 장기 실행 호출은 진행 상태 콜백을 호출하고 **sqlite3_interrupt()**에 반응함.

### GN⁺의 의견

- SQLite의 지속적인 개선은 데이터베이스 관리 시스템의 안정성과 성능에 중요함.
- JSON SQL 함수의 개선은 웹 개발자와 모바일 애플리케이션 개발자에게 특히 유용함.
- 쿼리 플래너의 최적화는 복잡한 데이터베이스 쿼리를 더 효율적으로 만들어 시스템 리소스를 절약할 수 있게 함.

## Comments



### Comment 22298

- Author: neo
- Created: 2024-01-16T10:35:20+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39004963) 
- macOS에서 새로운 SQLite 버전을 시도하고 싶은 사람들을 위한 빠른 방법:
  - SQLite 버전을 macOS에서 Python과 함께 사용하는 방법에 대한 링크 제공.
  - 간단한 명령어를 통해 SQLite 라이브러리를 컴파일하고 Python에서 버전을 확인하는 방법 설명.
  - SQLite의 웹 UI를 사용해보기 위한 `datasette` 명령어 안내.

- SQLite의 JSONB에 대한 개선 사항:
  - JSONB를 사용하면 JSON 관련 작업의 성능이 3배 향상될 수 있음.
  - JSONB는 텍스트 JSON보다 대부분의 경우 약 5%~10% 작은 크기를 가짐.
  - Notion Labs에서 많은 JSON을 사용하므로 디스크 사용량 감소에 대한 개선이 기대됨.

- SQLite 3.45 버전의 대화형 릴리스 노트:
  - 공식 릴리스 노트가 지루하다면 대화형 버전 링크 제공.

- SQLite가 미래의 GCC 컴파일러 경고를 예상하는 인상적인 사례:
  - SQLite가 GCC의 새로운 컴파일러 경고를 미리 대비하는 것에 대한 언급.

- 클라우드 네이티브 SQLite에 대한 관심과 PostgreSQL과의 비교 요청:
  - 클라우드 기반의 SQLite 서비스들에 대한 관심 표현.
  - PostgreSQL과 SQLite의 비교 자료 요청.

- SQLite에 대한 재평가와 긍정적인 인식 변화:
  - SQLite를 단순한 '장난감 데이터베이스'로 여기던 시각에서 벗어나 실제 앱에 유용함을 인정.

- JSONB에서 정수와 부동소수점을 텍스트로 저장하는 결정에 대한 의문:
  - JSONB의 사용 사례에 대한 제한을 초래할 수 있는 데이터 저장 방식에 대한 비판.

- 이전에 논의된 JSONB의 도입:
  - "JSONB has landed"라는 제목으로 이전에 해커뉴스에서 논의된 사실 언급.

- SQLite에서 JSON과 같은 데이터를 효율적으로 저장하고 처리하는 도전:
  - SQLite가 JSONB를 도입하려는 오랜 바람과 그것을 실현하기 위한 접근 방법에 대한 설명.

- JSONB의 내부 포맷이 텍스트 JSON보다 적은 디스크 공간을 사용함:
  - JSONB가 텍스트 JSON에 비해 디스크 공간을 덜 차지한다는 정보 공유.
