我正在构建一个ASP.NETMVC应用程序,用户可以将图片附加到他们的配置文件,但也可以在系统的其他领域,比如仪表板上显示最近消息等的消息传递小工具。
当用户上传这些文件时,我想知道是否最好将它们存储在数据库或磁盘中。
数据库优势
文件系统优势
其他网站在哪里存储这类信息?对于这样的事情,我有点担心数据库的性能,这是对的吗?
发布于 2018-05-17 17:16:14
实际上,使用数据库查找数据存储可能会更快,这取决于你拥有的图像数量,除非你使用的是高度优化的文件系统引擎。数据库是为快速查找而设计的,并且使用比文件系统更有趣的技术。
ReiserFS(过时)非常适合查找,ZFS、XFS和NTFS都有出色的散列算法,Linuxext 4看起来也很有前途。
对系统的影响在块读取方面不会有任何不同。问题是返回文件名(可能是哈希?)的查询查找速度更快,而哈希则是使用单独的打开的文件结束关闭(或者只是将BLOB转储出去)来访问的吗?
有几件事要考虑,包括网络命中、处理命中、可分发性等。如果你把东西存储在数据库中,那么你可以移动它。然后,如果你将图像存储在内容传递服务上,这可能要快得多,因为你没有对自己进行任何网络访问。
发布于 2018-05-17 17:34:46
将对数据库中文件的引用存储在磁盘上。
这种方法更灵活,更易于推广。
你可以拥有一个数据库和多个服务器来提供静态内容。让几个数据库来完成这项工作将更加困难。
Flickr是这样工作的。
希望能帮上忙。
https://stackoverflow.com/questions/-100008521
复制相似问题