我们有大量无法容纳在内存中的数据。因此我们将它们分布在磁盘上的大量文件中,然后通过向前移动指针来打开文件并顺序读取记录。一旦指针到达EOF,我们打开下一个文件。
我们在加载数据后立即进行过滤。如果我们可以像在数据库中那样运行查询来进行过滤,那就太好了。我们想要读取数据库中的所有数据而不是文件,但我们不能一次性将所有数据都存入内存,我们该如何处理?我们可以使用块来提供数据,但这可能需要更多时间在网络上。有没有更快的解决方案来解决这个问题?使用像Redis或MemSQL这样的替代数据存储器会有帮助吗?
答案 0 :(得分:0)
MemSQL的专栏商店经过精心设计,可以解决这类问题。它会智能地压缩数据,并在您查询时自动在RAM和磁盘(SSD或HDD)之间移动它。
MemSQL还将自动并行处理文件并跨节点分发数据。
这是MemSQL快速入门指南:http://docs.memsql.com/latest/setup/quick_start/
以及有关如何开始使用列存储的一些文档: http://docs.memsql.com/latest/concepts/columnar/