文件读/写与数据库读/写

fel*_*lix 14 database filesystems file-io database-design file

在资源和效率,文件读/写操作或数据库读/写操作方面,这样做更昂贵

Tim*_*ker 11

我最初会说数据库读/写,向下,因为它将包括在数据库开销之上的必要文件io,但后来意识到它并不那么简单.如果您将整个数据库加载到内存中,则读取几乎是即时的,因为不涉及文件IO.

通常,写入也会更快,因为数据库引擎在返回之前不必等待文件IO完成,因为它们可以采用"惰性写入"方法.

另一方面,调整不佳的数据库将比任何基于文件的IO慢几个数量级.数据库调优很重要 很多.


nor*_*ole 5

这是一个沉重的问题。我们在谈论什么大小的文件?千兆字节?另外,数据库的类型和大小是什么?我经常使用组合。您想控制任何数据级别的完整性吗?如果是这样,您可能希望将其留给数据库,否则您必须在应用程序级别控制所有这些。
有很多因素可以在这方面做出正确的决定。例如,当我创建不想持久化的临时数据时,我使用 File,但如果我正在使用我想要持久化或备份的数据,那么我使用 DB。
这与架构相结合很重要。如果硬件、许可或设施是一个问题,那么您可能不需要数据库服务器等基础设施。但是如果您有资源,那么添加数据库层可能是正确的选择。