MySQL存储图片数据库

daitounaoshi 2011-04-25 11:42:32
我用VC++做了个程序,数据库用的是MySQL.数据表其中一个字段是MEDIUMBLOB类型的,用来存放图片文件。基本上每张图片都在300K左右大小。数据库里面有4000张图片图片的时候。我搜索图片的时候那个速度啊真是比蜗牛还慢。大侠们留下点想法嘛。留想法的都给分哦。随便留下点什么嘛。
...全文
848 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiter 2012-02-14
  • 打赏
  • 举报
回复
那些大网站都怎么干的?存图片是路径,还是数据库?
aleng18 2011-04-30
  • 打赏
  • 举报
回复
用SQL SERVER数据库确实比MYSQL数据库存图片的效率高啊。-------sqlserver有一个数据类型,正是靠它才得以让我们存储图片很快,可以通过select方式选数据,在数据库层面实现select+copy图片等功能。这种数据类型说白了就是链接到文件系统的一个文件链接,在文件系统中存文件。mysql免费,当然没有这么方便的功能了(目前),在mysql世界中,是使用php来操作文件,mysql来存储文件路径(链接的)。也就是说比较原始和麻烦,各位不可不知。
daitounaoshi 2011-04-28
  • 打赏
  • 举报
回复
用SQL SERVER数据库确实比MYSQL数据库存图片的效率高啊。初步感觉还是可以呢。唉,解决了我一个大问题啊。
daitounaoshi 2011-04-27
  • 打赏
  • 举报
回复
而且我听说SQL SERVER在存图片这方面性能还不错。
daitounaoshi 2011-04-27
  • 打赏
  • 举报
回复
说实话,我真的是迫不得已而为之啊。这个软件在实际运用中几十万图片很平常的。
WWWWA 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 zuoxingyu 的回复:]
还是别想着图片存数据库了吧,这玩意不是数据库擅长干的活。
[/Quote]
支持,用字段保存图片的名字、路径,使用时再取出
十豆三 2011-04-27
  • 打赏
  • 举报
回复
如果图片存储到数据库中,建议将图片转换小一些。

但如果记录比较多的话,就不建议图片存储到数据库中了。
zuoxingyu 2011-04-27
  • 打赏
  • 举报
回复
还是别想着图片存数据库了吧,这玩意不是数据库擅长干的活。
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
那真的是头大了。
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
我重新清了数据库。一个程序添加记录,一个程序读取记录,开始读取速度比较快,后来越来越慢,也就是说找到这条记录的时间比较快,读取图片数据也不至于14S啊,为什么会越来越慢呢?
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
真的不知道时间浪费到哪了,同样的查询条件查图片数据就特别慢,查其它字段比较快啊
hahaliu005 2011-04-26
  • 打赏
  • 举报
回复
哈哈,帮我测试了,原来数据库存图片真的不实用,我还是老实用路径存吧
iihero 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 daitounaoshi 的回复:]

文件名添加了索引之后,还是用了14s才查出来一条记录啊。
[/Quote]
这个应该包含了取数据的时间(blob数据读取也费时间)
边城浪子 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 daitounaoshi 的回复:]

我打算换SQL SERVER 数据库了。感觉MYSQL确实不适合存大量图片。
[/Quote]

且慢。你会发现SQL SERVER更不满足你的要求。
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
文件名添加了索引之后,还是用了14s才查出来一条记录啊。
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
我打算换SQL SERVER 数据库了。感觉MYSQL确实不适合存大量图片。
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 acmain_chm 的回复:]
你可以再试试

select 图片编号(ID)(主键-自动增长),图片名称(image_name),图片上传时间(add_time) from image_table image_n……
[/Quote]
我已经比对过

select image_path(图片存储绝对路径) from image_table where image_name = '图片文件名'
select image_data from image_table where image_name = '图片文件名'

图片文件名一样,时间差别好大。应该就是读取BLOB耗费的时间。存储的图片越多读取图片数据就越慢。检索到记录的时间应该是挺短的
iihero 2011-04-26
  • 打赏
  • 举报
回复
image_name上肯定要建索引。
当图片大部分大小超过64K,建议采用本地文件,数据库中存路径来实现。
当图片数量超过100000,建议对本地文件路径进行分级整理,甚至多文件合并。
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
图片存储到本地这个方案数据库只存储路径的话暂时先不说,想先听听你们对MYSQL存图片的看法
daitounaoshi 2011-04-26
  • 打赏
  • 举报
回复
表结构很简单,主要就是图片编号(ID)(主键-自动增长),图片名称(image_name),图片上传时间(add_time),图片数据(image_data)。
我的搜索语句是
SELECT image_data from image_table where image_name = '图片名称'
加载更多回复(8)
本课程系列通过对Mysql数据库的当前业界应用情况和未来发展应用前景的分析作为切入点,结合Mysql企业应用的热点关键功能,尽量用通俗易懂的方式讲给大家。本课程是作者收集了大量资料,参考很多讲师的精华内容,坚持半年利用业余时间,每天早上坚持录制一节课程,对内容不断的提炼打磨,不断的对知识点进行思考总结,最后把自认为满意的结果呈现给大家,个人精力有限难免有不足支持,希望大家多交流留言,提出宝贵意见,促使不断优化改进。本系列课程主要由以下部分组成:一,MySql概述数据库概念,主流数据库介绍,Mysql概述,MySql版本介绍,外围工具,MySql分支版本发展,数据库发展前景,数据库的应用发展。Mysql安装。二,MySql架构体系结构,sql执行过程,逻辑结构,物理结构,数据库实例,存储引擎 三,MySql常用操作数据库,权限表,表内容,常用函数,备份与恢复,存储过程,触发器,事务四,MySql优化需求设计SQL语句:索引的优化,sql语句的优化,表的优化运维配置角度五,MySql集群部署主从复制,读写分离六,高级应用(开发)Mybats访问数据库,JDBC,NET平台EF框架等操作数据库Mysql在大数据项目中应用事务及分布式事务ß【课程目标 】Þ了解MySQl数据库架构 Þ掌握数据库基本操作Þ数据库设计一般方法 Þ数据库优化Þ数据库集群应用

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧