我以前是把上传的图片和文件保存在服务器的文件夹中;现在为了便于管理我想把上传的图片和文件保存在数据库中。
但是我想想,如果是一个几兆的文件(以后可能是几十兆),查询数据库后返回数据,对数据库有没有影响,会不会发生因为数据库反映慢,而记录锁住的时间太长的情况?
而Web服务器和数据库服务器之间传递数据(公司里是同一台机器),又有多大的影响?
请有经验的高手讲一下!

解决方案 »

  1.   

    可能的做法是把图片和文本内容分别部署到独立的web服务器
    如果把图存到数据库(几十m?)如果要显示图片那会占用前台与后台数据库的带宽,影响到数据库的负载,个人觉得,一个图片从硬盘读要比从数据库高效得多,毕竟数据库不是为了优化文件io设计的。
    关系型数据库管理图片没有任何的优势,除非是有关gis图层查询这样子的东东。
      

  2.   

    不太好,数据从数据库服务器的数据库里拿出来,然后到Web服器上经过程序的处理还原一个二进制文件.然后是下载到IE里,就这么一个过程
      

  3.   

    数据库里放路径
    FTP文件夹里放实际文件名
      

  4.   

    放数据库让我满意的是便于便于统一管理(CRUD)但,太耗性能了,不仅如此,对于大文件,备份数据,也是一个问题
      

  5.   

    http://terraserver.microsoft.com/这个是我喜欢的有关 SQL Server 的性能和可伸缩性的例子之一。 微软从俄罗斯购买了大多数有人居住地区的卫星图片,并用来自美国 Geological Survey 的图片对其加以补充。这些图片全部被装载到 SQL Server 之中!!!!!它包括了 TB 的数据,然而 Web 站点却能一非常快的速度提供图像服务。他的性能证明了 SQL Server 在从较小规模的数据库扩充到较大规模的数据库时,仍然可以提供良好的性能服务。
      

  6.   

    节选自《SQL Server 2000 宝典》 中 《SQL Server 的性能与可伸缩性》章节。
      

  7.   

    我现在是放在文件夹中。我考虑了几天,决定先不改变(因为我比较懒),如果以后有问题,我就改成放在数据库中。但是数据库设计时,把文件数据单独放在一个表上,我想这样就不会因为速度的关系而把访问频繁的表锁住(SQL Server的记录锁)。
      

  8.   

    如果你是用SQLServer建议保存在文件夹中。实在要保存到服务器的话建议你使用oracle数据库的大对象存储。性能不会损耗太大,速度也比其他数据库快,且专门存储电影、图片等内容。据说香港的马会录象全部是存储在oracle中的。
      

  9.   

    1楼说的甚是
    我之前的做法是
    单独建立文件资源服务器,提供WebService服务
    应用站点中存储资源服务器返回的文件路径另外资源服务器可提供 存在到磁盘和数据库的2中模式.开发者自行决定如何去存储文件