我计划生成大量数据,我想将其存储在MySQL数据库中。我当前的估计指向主表中的四个千万 十亿行(只有两列,其中一列被索引)。
这里有两个问题:
1)这可能吗?
,更具体地说:
2)这样的表可以有效使用吗?
感谢! 海梅
答案 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)
您的表现将取决于您的硬件。