为啥我应该在数据库而不是文件系统中插入 blob?
Posted
技术标签:
【中文标题】为啥我应该在数据库而不是文件系统中插入 blob?【英文标题】:Why should I insert blobs in database instead of filesystem?为什么我应该在数据库而不是文件系统中插入 blob? 【发布时间】:2015-08-10 11:56:03 【问题描述】:我必须在 Web 应用程序中管理一些文件,比如用户个人资料的头像图像。 我问自己:我应该在用户的数据库表中使用 blob 字段还是仅仅在 avatars/userid.jpg 之类的文件系统文件中使用?如果我不需要此字段的搜索功能,将 blob 存储到数据库有什么好处?
【问题讨论】:
【参考方案1】:还要考虑文件的数量。如果您必须管理大量文件(至少 >10.000),您必须考虑将文件组织在目录结构中,否则某些文件系统可能会变慢。数据库通常会处理这些。
此外,如果用户已经连接到数据库,则无需担心设置所有用户都可以连接的共享文件。另一方面,数据库中单个文件的安全管理要困难一些,必须自己做。
【讨论】:
【参考方案2】:如果您还没有运行数据库,那么几乎没有什么好处。如果是这样,在某些情况下,您可以利用该数据库的缓存功能。不过,在大多数情况下,如果您不需要搜索,请使用文件系统。
【讨论】:
以上是关于为啥我应该在数据库而不是文件系统中插入 blob?的主要内容,如果未能解决你的问题,请参考以下文章
Azure SQL - 从 Azure 文件而不是 Blob 批量插入
上传视频文件成功后$_FILES['name']的值为啥是blob?而不是原始文件名?怎么才能获取到原始文件名?