数据
NoSQL(非关系型数据库)
/ NO-sequel or no-ESS-cue-ell /
NoSQL 是一类数据库的统称,它们不把所有东西都塞进 SQL 所依赖的那种规整的「行与列」表格里。它们不强求你预先把数据塞进一张固定的网格,而是让每一条记录想长什么样就长什么样——当你的数据杂乱、经常变动、或干脆套不进电子表格时,这就很省心。
它有好几种风味。文档型(如 MongoDB)把每条记录存成一团灵活的、类似 JSON 的数据;键值型(如 Redis)就是一本超大的字典——给它一个键,立刻还你一个值,快得飞起;此外还有宽列型和图(graph)数据库,对付别的形状的问题。
代价是实打实的。舍弃了死板的表格,你换来了灵活,往往还更容易横跨多台机器扩展——但也放弃了关系型数据库白送给你的那种严格的一致性和清爽的关联关系。这名字有点误导:应理解为「不只是 SQL」,而非「不许用 SQL」。
db.users.insertOne({
name: "Mei",
roles: ["admin", "editor"],
address: { city: "Taipei" }
})文档型数据库乐于把列表和对象嵌套在一条记录里——根本不需要表。
NoSQL 不是 SQL 的替代品,而是另一种工具。许多真实系统两者都用:关系型数据库管订单,键值存储做缓存。
又称
另见