GN⁺: JSONB 지원을 포함한 SQLite 3.45 출시
(sqlite.org)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 함수의 개선은 웹 개발자와 모바일 애플리케이션 개발자에게 특히 유용함.
- 쿼리 플래너의 최적화는 복잡한 데이터베이스 쿼리를 더 효율적으로 만들어 시스템 리소스를 절약할 수 있게 함.
Hacker News 의견
-
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에 비해 디스크 공간을 덜 차지한다는 정보 공유.