在资源和效率,文件读/写操作或数据库读/写操作方面哪个更昂贵?
我正在使用MongoDB和Python。我不是每分钟在db / file上执行大约100k个请求。此外,数据库/文件中有大约15000个文档。
哪个会更快?提前谢谢。
答案 0 :(得分:5)
这取决于..如果你需要读取有序数据,文件可能会更快,如果你需要读取随机数据,数据库有更好的机会根据你的需要进行优化。
(毕竟 - 数据库也从文件中读取它的记录,但它有内部结构和算法来提高性能,它可以更智能地使用内存,并在后台做很多事情,所以结果将会来得更快)
在随机阅读的密集案例中 - 我将使用数据库选项。
答案 1 :(得分:3)
有太多因素无法提供具体答案,但这里有一个供你考虑的清单:
答案 2 :(得分:3)
尝试并告诉我们答案。
答案 3 :(得分:1)
从数据库中读取可以更有效,因为您可以直接访问记录并使用索引等。对于普通的平面文件,您基本上必须按顺序读取它们。 (大型机支持直接访问文件,但这些文件位于平面文件和数据库之间)。
如果您处于多用户环境中,即使多个用户同时尝试更新,您也必须确保数据保持一致。使用平面文件时,除了一个用户之外,您必须锁定文件,直到她准备好更新,然后锁定下一个文件。数据库可以在行级别上进行锁定。
您可以使基于文件的系统与数据库一样高效,但这种努力相当于自己编写数据库系统。
答案 4 :(得分:0)
如果未使用缓存,则根据定义,文件的顺序IO操作会更快。数据库最终使用文件,但在数据到达文件之前,它们有更多层要传递。但是,如果要使用数据库查询数据更有效,因为如果选择文件,则必须自己实现。对于您的任务,我建议研究不同数据库的聚类,它们可以扩展到您的速率。