Sử dụng SQLite như một Document DB
(dgl.cx)-
Cách sử dụng SQLite như một Document DB bằng cách dùng Generated Columns và các hàm liên quan đến JSON
-
Kết hợp
GENERATED ALWAYSvà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
6 bình luận
Có thể dùng theo cách này không? Có vẻ như vẫn tận dụng được ưu điểm của RDBMS, đồng thời mang theo tính mở rộng kiểu NoSQL cho việc thêm hoặc thay đổi các trường ít dùng.
Trước hết dùng SQLite.
Khi cần thêm trường thì dùng nó như một document DB theo cách này.
Có thể không hoàn toàn giống với generated column đã được nhắc đến, nhưng PostgreSQL và MySQL cũng đã cung cấp cột kiểu JSON và các truy vấn cho kiểu đó, nên có vẻ cũng có thể sử dụng theo cách tương tự.
Đúng như bạn nói, có vẻ nó có thể được dùng cho mục đích như thêm các trường người dùng tùy chỉnh.
Ừm.. trong số các document DB có cái nào được làm nhắm đến mục tiêu embedded như SQLite không nhỉ? Vì SQLite vốn dĩ gốc là SQL nên thấy hơi ngại OTL. Kiểu phiên bản Lite của MongoDB. Chẳng hạn như MangoDB (...)
Với nhu cầu key-value đơn giản thì có RocksDB https://github.com/facebook/rocksdb
Như bạn nói, cho mục đích document DB thì có UnQLite https://unqlite.org/
được cho là khá nhanh và dễ dùng.
Ồ, cảm ơn nhé. Giờ ngoài SQLite ra chắc cũng nên thử dùng mấy cái này xem sao.