필요할 때 SQLite 가 document store
SQLite 가 3.38 이후 기본값으로 JSON1 extension ship. TEXT 컬럼에 JSON 저장 + SQL 함수로 query:
json_extract(col, '$.path')— JSON path 로 값 추출.json_each(col)/json_tree(col)— JSON 요소 iterate 하는 table-valued 함수.json_set(col, '$.path', value)/json_remove/json_replace— 변경.json_array/json_object/json_group_array— JSON 빌드.
3.45 (2024 년 1 월) 이후 SQLite 가 JSONB — access 마다 parse 더 빠른 binary 표현 — 도 지원. 컬럼이 크거나 자주 query 되면 JSONB 저장.
Tip: 추출된 JSON path 위 expression 인덱싱 = query 빠름:
CREATE INDEX idx_meta_status ON events(json_extract(meta, '$.status')). 그러면 WHERE json_extract(meta, '$.status') = 'pending' 가 인덱스 사용.