我必须对存储在MySQL数据库中的非常大的数据集执行一些严重的数据挖掘。但是,需要比基本的多一点的查询往往变得相当低效,因为它们返回的结果大概在10e6或更多,特别是在引入一个或多个表的JOIN
时 - 考虑将包含数十个数百万行(在过滤数据后),这在每个查询中都会发生。我们经常希望在这些(sum
,avg
,count
等)上运行聚合函数,但这是不可能的,因为MySQL只是扼杀。关于极大数据集的RDBMS - 人们在使用什么?
我应该注意到很多努力都是为了优化当前的性能 - 所有表格都正确索引,查询调整,硬件一流,存储引擎配置等等。但是,每个查询仍然需要很长时间 - 直到“我们在回家之前运行它,并希望明天我们能够最好地工作时最好”。不好。
这必须是一个可以解决的问题 - 许多大公司执行非常数据和计算密集型挖掘,并处理它(无需编写自己的存储引擎,谷歌)。我愿意接受时间处罚来完成这项工作,但几小时而不是几天。我的问题是 - 人们用什么来对付这样的问题?我听说过针对这类问题的存储引擎(greenplum等),但我想知道如何解决这个问题。我们目前的数据存储显然是关系型的,应该保持这种状态,但任何想法或建议都是值得欢迎的。谢谢。
mysql对于我来说非常适合(运行时间小于0.2秒),并且具有非常大的表10亿行,使用优化的innodb模式的复杂连接可以利用聚簇索引而无需分区。我想知道你的mysql模式有什么问题使得它表现如此糟糕?也许快速阅读这可能会指出你在正确的方向http://stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one-on-a/4421601#4421601 –