我们拥有大约3亿条记录的大量数据,每3-6个月会更新一次。我们需要查询这些数据(连续,实时)以获取一些信息。有哪些选项 - 一个RDBMS(mysql) ),或其他一些选项,如Hadoop.Which会更好吗?
答案 0 :(得分:4)
300M记录完全在常规关系数据库的范围内,如果正确使用索引,实时查询应该没问题。
除非你真的需要高度分散和冗余的数据,否则Hadoop听起来有点过分,如果遇到麻烦或进行优化,它也会让你更难找到支持。答案 1 :(得分:1)
好吧,我有一些PostgreSQL数据库,其中一些表记录超过700M,并且它们一直在更新。
这些表中的查询工作非常快(几毫秒)并且没有任何问题。现在,我的数据非常简单,我在查询的字段上有索引。
所以,我会说,这将取决于你将要进行什么样的查询,以及你是否有足够的钱花在快速磁盘上。
答案 2 :(得分:1)
正如其他人所说,现代RDBMS可以处理这样的表,具体取决于查询和模式(必须进行一些优化)。如果你有一个很好的键来分割行(例如日期列),那么partioniong /分片技术将帮助你将表分成几个小的。
您可以在我前面问过的问题中阅读有关这些和其他缩放技术的更多信息 - Scaling solutions for MySQL (Replication, Clustering)
答案 3 :(得分:0)
3亿条记录对Oracle,SQL Server,DB2等高端RDBMS没有任何问题。我不确定mySQL,但我很确定它现在被用于一些非常大的数据库。
答案 4 :(得分:0)
这些日子里,3亿美元并不算太大: - )。
如果您主要是查询,并且您或多或少知道查询将采用什么形式,那么具有适当索引的MySQL表将可以正常工作。
如果您在运行查询的同时不断更新更新,请选择PostgreSQL,因为它具有更好的并发处理能力。
如果您的公司愿意花钱,MS SQLServer,Sybase,Oracle和DB2都将轻松处理这些卷。
另一方面,如果您打算对非结构化数据进行真正的自由格式查询,那么Hadoop或类似的将是更好的选择。