在sql server中存储大型照片/文本文件的最佳做法是什么。需要可扩展性,我们只需要使用1台服务器。
我觉得在sql中存储文件路径而不是blob更好。这是真的?如果我们必须扩展软件,我们仍然应该遵循这种方法。
答案 0 :(得分:10)
这取决于文件的大小。
关于这个问题有一篇很好的微软白皮书,here。
小于256K的对象最好存储在数据库中,而大于1M的对象最好存储在文件系统中。在256K和1M之间,读取:写入比率和对象覆盖或替换率是重要因素
当然,他们的结论特定于SQL Server(2005和2008 R2)。
答案 1 :(得分:1)
这主要是使用正确的工具来完成工作的问题。为了存储关系数据,已经花费了大量时间和精力来优化关系数据库。为了存储文件,已经花费了大量时间和精力来优化文件系统。
前者可用于执行后者的部分工作,但除非有充分理由不使用后者,否则它是更适合工作的工具。几乎在每种情况下我都会遇到,在DB中存储文件路径(以及有关您可能需要的文件的其他相关信息)以及FS上的实际文件是一种更适合使用可用工具的方法。 / p>
答案 2 :(得分:1)
这是一个坏主意。除非您有一些非常具体的理由将数据存储在数据中。这里已经讨论过了:Storing Images in DB - Yea or Nay?
如果您仍然坚持,请阅读最佳做法:) Best Practices for uploading files to database