gpt4 book ai didi

nosql - 为什么键值对 noSQL 数据库比传统关系数据库更快

转载 作者:行者123 更新时间:2023-12-03 14:32:13 25 4
gpt4 key购买 nike

有人建议我研究键/值对数据系统来替换我一直在使用的关系数据库。

我不太了解的是这如何提高查询效率。据我了解,您将丢弃大量有助于提高查询效率的信息,只需将您的结构数据库变成一个长长的键和值列表?

我完全错过了重点吗?

最佳答案

关系数据库的主要优势是关联和索引信息的能力。大多数“NoSQL”系统不提供关系代数或出色的查询语言。

您需要问自己的是,切换对我的预期用例有意义吗?

你有点错过了重点。关键是,您有时没有索引(无论如何,您使用一般关系数据库的方式)。即使你确实有一个索引,将它关联在一起的能力也很困难,这也是关系数据库擅长的。 NoSQL 解决方案具有许多新颖的结构,这使得许多用例变得非常简单,例如Redis 是一个面向数据结构的数据库,非常适合使用队列或其 pub-sub 架构快速构建任何东西。 MongoDB 是一个自由格式的文档数据库,它将文档存储为 JSON (BSON),擅长快速开发。 BigTable 解决方案的结构比这稍差,但将行的概念扩展为具有列族——每行中包含的键值对在磁盘上有效排列。您可以使用 ElasticSearch 等技术在此之上构建倒排索引。

并非所有东西都需要传统 RDBMS 的一致性保证或磁盘布局。 NoSQL 的另一个主要用例是大规模的可扩展性,许多解决方案(例如 BigTable -- HBase/Cassandra)旨在轻松进行分片和水平扩展(使用 SQL 并不容易!)。特别是 Cassandra 专为无 SPOF 而设计。此外,面向列的数据存储旨在通过顺序读取优化磁盘速度(并减少 write-amplification )。话虽如此,除非您真的需要它,否则传统的 SQL 服务器通常就足够了。

有优点也有缺点。就个人而言,我将两者混合使用。为正确的工作使用正确的工具,最终可能是 PostgreSQL 或 MySQL。

你可以把一个基本的键值系统比作一个包含两列的 SQL 表,一个唯一的键和一个值。这是相当快的。您无需对数据进行任何关系或关联或整理。只需找到值并返回它。这是一种过度简化,NoSQL 数据库除了简单的 K、V 存储之外,确实有很多有趣的功能和应用程序。

我不知道您的科学数据是否非常适合大多数 NoSQL 实现,这取决于数据。如果您查看 HBase 或 Cassandra,它可能很适合科学家的需求(使用适当的行键设计——时间戳不能放在首位,请查看 OpenTSDB)。我知道许多公司在 Cassandra 中存储传感器读数,方法是使用随机顺序分区器和传感器的 UUID 将读数汇总到每日脂肪行中。每天都会围绕特定用例创建新数据库,因此答案可能会发生变化。对于特定用例,您可以以牺牲灵 active 和工具为代价,通过使用特定数据存储获得巨大返回。

关于nosql - 为什么键值对 noSQL 数据库比传统关系数据库更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com