SQLite 变身文档数据库的秘诀
SQLite as a Document Database (2020)
SQLite 早已支持 JSON,但直到 3.31.0 版本引入 generated columns 功能,它才真正具备了作为文档数据库的潜力。通过 json_extract 函数,我们可以直接将 JSON 数据插入 SQLite,并自动提取字段进行索引和查询。这不仅让轻量级应用能享受类似 PostgreSQL 或 Elastic 的灵活查询能力,还能在插入时自动验证 JSON 格式,甚至强制要求特定字段存在。更妙的是,你可以从简单的单列 JSON 表开始,随着需求增长动态添加虚拟列和索引,非常适合处理 webhooks 等场景。
你可以从一张仅包含单个 JSON 列的表开始,然后随着你发现 JSON 中有用的数据,再逐步添加列和索引。