有一个包含大约 600 万条记录的数据集。每条记录具有相同数量的字段。总共有8个字段:
ID Title Color Date1 Date2 Date3 Date4...
应该有一种方法可以按标题和所有日期字段(或 RDBMS 术语中的“列”)过滤这些记录。
数据的大小不是那么大,大约几千兆字节。我们没有长文本字段等(我们在架构创建过程中去掉了它们,所以现在我们在数据集中只有非常重要的字段)。
后端读取和写入数据非常密集。我们真的很想尽可能地加快读\写(和按字段过滤)。目前我们正在使用 Postgres,我们喜欢它的可靠性,但它似乎并不是很快。是的,我们做了一些调整和优化,添加了索引,将它安装在 32GB RAM 的机器上并设置了所有必要的设置。换句话说,它有效,但我仍然相信它可能会更好。我们需要的是速度:按日期和标题过滤记录应该很快,非常快。数据插入可能会更慢。后端过滤所有未处理的记录,对其进行处理,并设置日期标志(处理时的日期时间)。每 5-10 秒执行大约 50 个后端“工作人员”,因此数据库应该能够执行得非常快。
我们那里没有连接,数据已经针对大数据解决方案进行了优化。只有一张“大桌子”。
我们希望在单个节点或许多小型实例上运行它。数据并不是很重要。但是我们想避免昂贵的解决方案,所以我们正在寻找一种 SQL 或 NoSQL 解决方案,它在同样便宜的硬件上比 Postgres 执行得更快。
我记得大约一两年前我尝试过 MongoDB。据我记得,那一刻过滤并没有那么快。Cassandra 更好,但我记得它只能执行一小部分过滤查询。Riak 很好,但仅适用于具有许多机器的大型集群。这是我非常基本的经验,如果你们知道这些解决方案之一表现出色,请写下来。或提出其他解决方案。
谢谢!