现在设计一个数据库,是使用MySQL。其中从前端采集的数据中包含图片,还有其他的信息。从数据量上来看,图片是占主要部分的(90%以上)。在数据库中有几个表中的列是要存储图像的。现在有一个问题是,要把图像直接以二进制的格式存储到相应的表里面吗?如果这样做会不会影响查询该表其他列的速度呢? 好像有另一个解决方案是将图片以文件的形式存储,将地址放到数据表中。这样应该是可行的,就是觉得管理上有些麻烦,对于删除、备份、恢复有些不方便,特别是在windows和linux上移植的话就更不好弄了。我还想到另一个方法就是把图片单独做一个表在数据库里面,把该图片的索引号放到数据表里面,这样应该不会影响到该数据表的查询速度,只有当要在网页上显示的时候,再去访问那个图片的表。当然了,只要将图片放到数据库里面,就占用了数据库的IO。
不知道各位是怎么将处理数据库中的图片的,应该用什么样的方法呢?谢谢您的指点!!

解决方案 »

  1.   

    不好意思 以前没有做过web的开发。一般是怎么做的呢 图片上传到服务器后,怎么获得它的地址呢。谢谢
      

  2.   

    一般是存地址,或者说文件名。你可以到GOOGLE中搜索文件上传的PHP或者ASP的代码。这个代码的功能都是会将用户文件存储于指定目录下,有的时自动生成一个文件名,有些是按照程序要求生成文件名。这样你通过调用这些代码,就知道了文件名,然后把文件名写入你的数据库记录中。
      

  3.   

    把图片放在项目的根目录下,数据库存放图片所在的根目录地址。
    然后显示的时候可以用<img src="这里存放数据库取出来的地址" /> 来显示。
      

  4.   

    了解
    这个项目中的图片是来自于前端拍照系统,不知道在设计上是否会有一些差别。是网络前端有一些采集设备,他们获取图片后上传到web server中。项目使用基于Java的技术开发的,文件上传的流程已经可以了,就是在实验的时候是将图片直接存到数据库里面的(二进制格式)。
    用户使用的时候通过设置一些查询条件找到相关条目,在查看该条目的详情的时候再显示图片。
      

  5.   

    除非量很小(记录数和文件尺寸都小)的情况,否则,还是使用地址。
    1 效率高,只需要配置一下,就可以把读取的工作交给apache什么的
    2 维护方便,写个脚本进行备份什么的也方便
    3 便于扩展,比如你需要对上传的图片进行修改、缩略图、水印工作,需要用到imagemagick或者其他3rd-party api,文件形式的接口更通用