SQLite를 도큐먼트DB로 사용하기
(dgl.cx)- SQLite의 Generated Columns 와 JSON 관련 함수를 사용해서 Document DB처럼 사용하는 방법
- GENERATED ALWAYS 와 json_extract 를 조합
> CREATE TABLE t ( body TEXT, d INT GENERATED ALWAYS AS (json_extract(body, '$.d')) VIRTUAL);
> INSERT INTO t VALUES(json('{"d":"42"}'));
> SELECT * FROM t WHERE d = 42;
{"d":"42"}|42
이렇게도 사용가능할까요? RDBMS의 장점을 취하면서도 마이너한 필드 추가, 변경의 NoSQL 확장성을 가져갈 수 있을것 같은데요
1. 일단은 SQLite 를 사용한다.
2. 필드를 추가해야 할 경우에 이처럼 도큐먼트 DB로 사용한다.
언급된 제너레이티드 컬럼과 동일하지는 않을 수 있는데, postgresql, mysql 도 이미 json 타입 컬럼과 해당 타입에 대한 쿼리가 제공되어서 비슷하게 사용할 수는 있을 것 같습니다.
으음.. 도큐먼트 DB중에는 SQLite처럼 임베디드 타겟으로 나온 DB가 없을까용? SQLite가 근본이 SQL이라서 부담감이 있어서요 OTL. MongoDB의 Lite 버전. MangoDB라던가(...)
단순 키밸류용으로는 RocksDB https://github.com/facebook/rocksdb
말씀하신것처럼 도큐먼트DB용으로는 UnQLite https://unqlite.org/
정도가 빠르고 쓰기편하다고 합니다.