Moj*_*imi 4 sql postgresql nosql database-performance
根据我的理解,我们可以将 SQL 与 NoSQL 进行比较,就像数组与 hashmap/dict 一样。
(让我们考虑一下 PostgreSQL 与 MongoDB 只是为了上下文)
SQL 按表排列并在行中搜索您要查找的内容。
NoSQL 以键值方式排列,因此如果您知道键,您将“直接”获得值,而无需搜索任何内容。
考虑到上述情况,当我在 SQL 中仅使用主键作为获取一项的 WHERE 进行查询时,它是否仍然执行行搜索,还是对行执行“直接”命中?
我希望我的疑问已被理解
主键保证是唯一的。唯一键是使用索引实现的,在我所知道的所有数据库中,索引都是 b 树。
主键查询使用 B 树来访问数据。复杂度为 log(n)。
有些数据库支持其他索引结构,例如哈希表。这通常会使这样的查找更像 O(1) 而不是 O(log n)。
我认为您并没有通过查看这些示例来尝试区分 NOSQL 和 SQL 数据库。您应该查看他们试图实现的要求,从 ACID 属性和延迟一致性等概念开始。