繁体   English   中英

DynamoDB 表与具有主键的关系表

[英]DynamoDB Table Vs Relational Table with Primary Key

我了解像 DynamoDB 这样的键值数据库用于更快的访问,我们可以根据特定键检索数据。 如果我不想要无限的可扩展性,我可以不使用具有主键(访问键)和其他可空属性的关系表来做同样的事情。

什么是计数器 arguments 一样。

像 Postgre 这样的关系数据库现在也支持 Json 个属性,并且有内置函数来解析它们。

当我不需要 PB 级数据时,键值数据库给我带来了什么独特的优势。

它的键值还是 SQL 数据库是语法方便的问题。 您实际上可以使用 PartiQL 使用类似 SQL 的查询来查询DynamoDB

但故事还有更多。 正如您所提到的,您可以只使用具有可为空属性的 SQL。 存储 null 值会消耗少量存储空间。 SQL 服务器具有“备用列”,导致空值不占用空间,但它们使用额外的存储开销。

DynamoDB 的主要优势不在于语法。 它可以轻松地提供一种方法来使用不高度依赖于表大小或正在运行的查询数量的分区键(或辅助分区键)来获得可扩展的、恒定时间的数据访问。 它也是无服务器多主机全局表,非常适合灾难恢复或可以使用最终一致性、DynamoDB 流等的全局应用程序。

是的,这些功能也可以通过 SQL 提供(参见“newSQL”数据库,如 CockroachDB),但也许 SQL 不常用于这些类型的数据库,以防止人们认为可以进行临时扫描查询和连接,它在像 DynamoDB 这样的分布式分区数据库中表现不佳。

我在 DynamoDB 上的博客文章中介绍了更多优点和缺点: http://www.101coder.com/dynamoDBdesign

总结你的问题:

NoSQL 像 DynamoDB 这样的数据库有哪些优势是 RDBMS 无法提供的?

这是一个相当简单的问题,但答案却相当复杂。 简而言之,大规模的可预测性。

DynamoDB 为您提供可预测的大规模性能。 请注意,我并不是说关系数据库很慢并且不能提供极快的性能。 我的意思是,扩展策略是不同的,并且代表了在规模上保持可预测性能的更大努力。

作为托管 NoSQL 数据库,DynamoDB 及其 NoSQL 对等项提供了一种完全不同的存储、检索和思考数据的方式。 如果把所有数据都存储在JSON这么简单,DynamoDB解决的问题早就解决了!

网上有大量关于 DynamoDB 的信息以及它与其他数据库产品的比较。 我建议从关于 DynamoDB 的 AWS re:Invent 讨论开始,深入了解您问题的一些答案。

从几个地方开始: DynamoDB Under The HoodIntro to DynamoDB Data ModelingAdvanced Design Patterns with DynamoDB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM