日期:2014-05-18  浏览次数:20424 次

文件存储问题 放数据库好还是放文件夹好
现状:

我们目前的业务情况是这样的,我们每一笔业务都要上传2~3张图片,大小是几十kb到2M不等.目前已经有200GB左右的图片.估计增长速度会加快,图片数量会是百万级.
要求能够快速地上传,索引和浏览图片.
我们系统目前的存储方式是直接把图片保存在数据库,分两个表,一个是文件信息表,一个是文件数据表.
目前能保证文件上传,索引和浏览的速度,但是这个数据库文件越来越大,担心数据库文件容易被破坏(曾经因为意外断电损坏了一次,幸好恢复了),而且担心性能会降低,所以计划调整方案.

方案:
现在能想到的有两种方法:
1.使用sql server2008的文件流方式存储,还是将文件存储在数据库中.
2.将文件存储到文件夹,数据库中只保存文件信息.

问题:
1.如果是放到文件夹中,当然能获得最大的灵活性,但是当一个文件夹中有上百万个文件时,操作系统索引每个文件会不会很慢?会不会远比在数据库中索引这个文件慢?
2.sql server2008的文件流的性能怎样?是否比操作系统的文件管理更有效?
3.对于这种大文件量的存储方式有没有更好的方案?

------解决方案--------------------
方案:
把图片最好还是存在文件夹中,这么大的图片量最好还是专门存放图片机器,从而减少对服务器的压力。
如果在数据库最好存放图片的路径。

------解决方案--------------------
对于单台机器上图片存放在硬盘上的很消耗磁盘I/O的。
最好的文件储存是分布式文件系统。
------解决方案--------------------
最好存储路径