首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在每一行中存储大型数组的dynamoDB或MySQL

问用于在每一行中存储大型数组的dynamoDB或MySQL
EN

Server Fault用户
提问于 2012-07-09 01:03:37
回答 3查看 2.3K关注 0票数 2

我正在试图决定在我正在创建的应用程序中应该使用哪个数据库。由于dynamoDB的可伸缩性,我倾向于使用它,但后来我在文档中看到了这样的内容:

项目大小的限制为64 KB。

虽然看起来MySQL有一个类似的限制,但有文档化的这里

这个应用程序将在两个数组中存储大量数据,每个数组中可能包含10,000至100,000个字符串。我估计这些字符串的长度约为20个字符,因此数组的每个元素大约为40字节,每个数组可能在4MB左右。

考虑到这种困境,您将在amazon上使用哪个数据库;或者如何绕过每行大小的限制?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2012-07-09 01:16:47

每个表有一个4096列的硬限制,但是对于给定的表,有效的最大值可能要小一些。确切的极限取决于几个相互作用的因素。每个表(无论存储引擎)的最大行大小为65,535字节。存储引擎可能会在此限制上设置额外的约束,从而减少有效的最大行大小。MySql 5.0手册

因此,这两种数据库管理系统都应该允许您在每一行中获得相同数量的数据。看起来,这两种方法都不足以满足您的需要或处理数据的方式。

无论如何,您不应该在每一行中存储这么多数据,最好单独存储每个字符串并使用其他表来引用它们。

票数 4
EN

Server Fault用户

发布于 2012-07-09 01:29:56

在进一步阅读了MySQL存储需求页面后,我注意到这一节:

表的内部表示有65,535字节的最大行大小,即使存储引擎能够支持更大的行。这个数字不包括BLOB或TEXT列,它们对这个大小只贡献了9到12个字节。对于BLOB和文本数据,信息在内部存储在与行缓冲区不同的内存区域中。

票数 0
EN

Server Fault用户

发布于 2012-07-12 07:14:20

使用它推荐的DynamoDB,您可以使用亚马逊S3来存储更大的值。

其他选项包括gzip压缩内容,这将给您大约200 of的存储。

请看下面的马特·伍兹幻灯片:

http://www.slideshare.net/AmazonWebServices/building-applications-with-dynamodb

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/405912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档