将图像存储在文件系统中是否更快,更可靠?还是应该将它们存储在数据库中?
假设图像不超过200 MB。目标是快速,可靠的访问。
一般来说,人们如何决定在文件系统或数据库中存储文件(例如图像,PDF)?
答案 0 :(得分:13)
个人观点:我总是将图像存储在文件系统中,并且只在数据库中存储文件路径。在许多情况下,数据库存储在快速(读取:昂贵的存储,15k RPM或SSD驱动器)存储上。图像或其他文件通常可以存储在较慢(读取:更便宜,更大的驱动器,7.2k RPM驱动器)存储上。
我发现这是最好的,因为它允许数据库保持较小的尺寸。通常,数据库很好地存储“数据”。他们可以快速搜索和检索少量数据。文件系统很好地存储“文件”,它们经过优化,可以快速查找和检索更大的数据。
显然,这两种方法都存在权衡,并且不会出现一刀切的情况;但是,可能存在一些用例,在数据库中存储图像是一件好事,如果它们都非常小,并且您没有预期很多,并且您的数据库与文件共享位于同一存储介质上,然后将图像直接放入数据库可能是有意义的。
作为旁注,SQL Server 2008R2有一个FileStream字段类型,它可以提供两全其美,我还没有使用它,所以我不能说它的工作情况。
答案 1 :(得分:4)
如果您需要以下内容,请将文件/图像存储在数据库中:
这就是像SharePoint这样的主要CMS的设计。
但是,如果您的内容更加静态并且不会随着时间的推移而改变,那么您可以使用文件系统并在Web服务器上启用优化/缓存。
答案 2 :(得分:1)
使用数据库方法,您只需要连接一件事。如果您的用户是分布式的,那可能会更简单。请注意,如果不经常访问图像,效率问题可能无关紧要。
答案 3 :(得分:0)
首先你必须知道,在数据库中,你不能存储比我想象的更大的文件8 mb,leavinig,所以我认为最好在系统中存储文件,以及数据库中的小图像