在RAM中使用Python/PHPnonpersistent array来存储8亿多行的6GB+数据,而不是在简单的查询执行中使用mysql/mongodb/cassandra/bigtable/bigdata(持久性数据库)数据库来加速/延迟,这有多大好处?
例如,在一秒钟内在8亿+百万行中找到一个名称:是否可能?是否有人有处理超过12亿行的数据集的经验,并在1秒内获得简单搜索查询的结果?
是否有更好的、经过验证的方法来处理数十亿行?

最佳答案

它应该是非常大的不同,大约4-5个数量级更快。数据库将记录存储在4KB块中(通常),并且必须将每个这样的块放入需要几毫秒的内存中。用4KB划分桌子的大小,然后得到图片。相反,内存中数据的响应时间通常为纳秒。毫无疑问,内存更快,真正的问题是您是否有足够的内存,以及您可以将数据保存在那里多长时间。
但是,上述内容适用于select * from table查询。如果您想要一个select * from table where name=something,您可以在名称上创建一个索引,这样数据库就不必扫描整个文件,而且结果应该更好,可能非常适合实际使用。

10-01 23:52
查看更多