MySQL中的最大行数

时间:2010-01-21 13:48:30

标签: mysql

我计划生成大量数据,我想将其存储在MySQL数据库中。我当前的估计指向主表中的四个千万 十亿行(只有两列,其中一列被索引)。

这里有两个问题:

1)这可能吗?

,更具体地说:

2)这样的表可以有效使用吗?

感谢! 海梅

5 个答案:

答案 0 :(得分:3)

当然,这是可能的。它是否可用将取决于您如何使用它以及您拥有多少硬件/内存。如果表格很大,那么使用分区可能也是有意义的,如果这对你正在存储的数据类型有意义的话。

ETA:

基于你只有两列并且其中一列被索引的事实,我将在这里猜测这是某种键值存储。如果是这种情况,您可能也想查看专门的键值存储数据库。

答案 1 :(得分:2)

可能可能,MySQL有几个具有不同功能的表存储引擎。我认为MyISAM存储引擎有一个theoretical data size limit of 256TB,但它进一步受到操作系统上文件最大大小的限制。我怀疑它是否可用。我几乎肯定它不会是最佳的。

我肯定会考虑将这些数据划分为多个表(可能甚至是多台计算机上的多个DB),这种方式对您的密钥有意义,然后联合任何搜索结果/总计/等。你需要。除此之外,这允许您进行并行搜索每个分区的搜索(在多服务器方法中)。

我还会寻找一种解决方案,它已经完成了分区和联合查询的繁重工作。我想知道Google的AppEngine数据存储(BigTable)或Amazon SimpleDB是否有用。它们都限制了你可以用数据做什么(它们不是RDBMS的),但是,无论如何,绝对大小都会这样做。

答案 2 :(得分:1)

您应该考虑对数据进行分区...例如,如果两列中的一列是名称,则根据第一个字母将行分为26个表。

答案 3 :(得分:0)

我创建了一个mysql数据库,其中一个表包含超过200万行(导入的美国人口普查县行数据,用于在Google地图上叠加)。另一张表略低于100万行(USGS Tiger位置数据)。这是大约5年前的事。

我真的没有问题(一旦我记得创建索引!:))

答案 4 :(得分:0)

4 pigarows并不是那么大,实际上,今天任何数据库引擎都可以处理它。即使分区也可能是一种过度杀伤力。它应该只是工作。

您的表现将取决于您的硬件。