database - 存储二进制或图像文件的最佳方式

标签 database image upload binary store

存储二进制图像文件的最佳方式是什么?

  1. 数据库系统
  2. 文件系统

请你解释,为什么?

最佳答案

没有真正最好的方法,只有一堆权衡取舍。

数据库专家:
1. 在集群环境下更容易处理。
2. 不依赖文件服务器等额外资源。
3.负载均衡环境下无需设置“sync”操作。
4. 备份自动包含文件。

数据库缺点:
1. 数据库的大小/增长。
2. 根据数据库服务器和您的语言,可能难以放入和检索。
3. 速度/性能。
4. 根据数据库服务器的不同,上传和导出文件时需要进行病毒扫描。


文件专家:
1. 对于单一网络/单一数据库服务器安装,速度很快。
2. 易于理解的文件操作能力。换句话说,如果磁盘空间不足,很容易将文件移动到其他位置。
3. 文件处于“静止状态”时可以进行病毒扫描。这使您可以利用扫描仪更新。

文件缺点:
1. 在多网络服务器环境中,需要一个可访问的共享。哪个也应该集群以进行故障转移。
2. 处理文件访问的附加安全要求。您必须小心网络服务器和/或共享不允许文件执行。
3.事务备份必须考虑文件系统。


上面说过,SQL 2008 有一个叫做 FILESTREAM 的东西,它结合了两个世界。您上传到数据库,它透明地将文件存储在磁盘上的目录中。检索时,您可以从数据库中提取;或者您可以直接转到它在文件系统上的位置。

关于database - 存储二进制或图像文件的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2028683/

相关文章:

python - 局部直方图均衡化

node.js - 监听数据库变化的最佳方式是什么?

php - 如何从一个数据库表中的组返回第一个值,MySQL

image - flutter 如何将 Assets 中的图片保存到内部存储?

css - 将文本 float 到图形和图形标题的右侧

asp.net - 带预览的多个文件上传

javascript - 以 Angular 将文件附加到 FormData 后无法上传文件

php - Zend Framework 2 中的 Pdf 上传

php - #1064 尝试在线导出本地主机数据库时出现错误消息

mysql - 如何在 MySQL 中检查日期范围内的任何日期是否落在表中保存的日期之间