7P by xguru 2달전 | favorite | 댓글 6개

- 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

nicewook 2달전  [-]

이렇게도 사용가능할까요? RDBMS의 장점을 취하면서도 마이너한 필드 추가, 변경의 NoSQL 확장성을 가져갈 수 있을것 같은데요

1. 일단은 SQLite 를 사용한다.
2. 필드를 추가해야 할 경우에 이처럼 도큐먼트 DB로 사용한다.

galadbran 2달전  [-]

언급된 제너레이티드 컬럼과 동일하지는 않을 수 있는데, postgresql, mysql 도 이미 json 타입 컬럼과 해당 타입에 대한 쿼리가 제공되어서 비슷하게 사용할 수는 있을 것 같습니다.

xguru 2달전  [-]

말씀하신대로 커스텀한 사용자 필드 추가나 그런 용도로 사용할수 있을거 같아요.

ffdd270 2달전  [-]

으음.. 도큐먼트 DB중에는 SQLite처럼 임베디드 타겟으로 나온 DB가 없을까용? SQLite가 근본이 SQL이라서 부담감이 있어서요 OTL. MongoDB의 Lite 버전. MangoDB라던가(...)

xguru 2달전  [-]

단순 키밸류용으로는 RocksDB https://github.com/facebook/rocksdb
말씀하신것처럼 도큐먼트DB용으로는 UnQLite https://unqlite.org/

정도가 빠르고 쓰기편하다고 합니다.

ffdd270 2달전  [-]

오오. 감사합니당. 이제 SQLite 말고 얘네들도 한번씩 써봐야 겠네요.