mysql存储图片方式小结
2015-09-18 15:30
716 查看
之前遇到一个问题,就是在将项目迁移到别的服务器的时候出现图片路径不对的问题,因为存放图片的方式是在数据库中存放图片路径,但是路径前却带了域名,这样换一台服务器换了域名之后,访问图片的路径还迁移前的服务器路径;
解决办法也比较简单, 但是觉得有必要总结一下存储图片的方式,一个系统肯定会图片,所以也是必须注意的。
数据库存放图片一般就两种方式,一是将图片转成二进制数据流存入数据库,二是将图片上传至服务器,数据库只存放图片的路径;
两种方式第一种我没用过,可以简单分析一下就能知道,图片一般属于大文件,一张图片有可能几百k甚至几M,这个时候将二进制数据存入数据库,再调用数据库内容的时候对数据库负担是很大的,如果图片很多,这种方式显然不适用;
现在重点说说第二种方式,存放图片路径,但是在存放图片路径也有两种方式,一种是存放图片绝对地址,即不带域名,还有一种是存放相对地址,图片存在服务器某个文件夹下,访问的时候/文件夹名称/图片,看到很多说法,关于这两种方式的利弊,大体是说只存放相对路径就行了, 不要带域名,因为带域名有一个明显的问题, 就是在系统迁移的时候不仅图片要打包迁移,数据库中所有带域名的图片地址全部都得更新;而相对路径存放图片就不用担心这个问题;
我自己分析了一下,感觉这两种应该适用在不同场合,第一种存放带域名图片地址,这个也是有存在的必要,比如你有一台单独的文件服务器,这个时候你就需要带上域名去存放图片路径,而且在系统迁移的时候也不用迁移图片,更不需要修改数据库;第二种是不存放域名,这时候适合没有文件服务器的系统的小型系统,迁移系统便捷,图片直接跟着打包就好了,数据库不需要改动;
解决办法也比较简单, 但是觉得有必要总结一下存储图片的方式,一个系统肯定会图片,所以也是必须注意的。
数据库存放图片一般就两种方式,一是将图片转成二进制数据流存入数据库,二是将图片上传至服务器,数据库只存放图片的路径;
两种方式第一种我没用过,可以简单分析一下就能知道,图片一般属于大文件,一张图片有可能几百k甚至几M,这个时候将二进制数据存入数据库,再调用数据库内容的时候对数据库负担是很大的,如果图片很多,这种方式显然不适用;
现在重点说说第二种方式,存放图片路径,但是在存放图片路径也有两种方式,一种是存放图片绝对地址,即不带域名,还有一种是存放相对地址,图片存在服务器某个文件夹下,访问的时候/文件夹名称/图片,看到很多说法,关于这两种方式的利弊,大体是说只存放相对路径就行了, 不要带域名,因为带域名有一个明显的问题, 就是在系统迁移的时候不仅图片要打包迁移,数据库中所有带域名的图片地址全部都得更新;而相对路径存放图片就不用担心这个问题;
我自己分析了一下,感觉这两种应该适用在不同场合,第一种存放带域名图片地址,这个也是有存在的必要,比如你有一台单独的文件服务器,这个时候你就需要带上域名去存放图片路径,而且在系统迁移的时候也不用迁移图片,更不需要修改数据库;第二种是不存放域名,这时候适合没有文件服务器的系统的小型系统,迁移系统便捷,图片直接跟着打包就好了,数据库不需要改动;
相关文章推荐
- mysql修复数据表
- MySQL索引与优化
- mysql数据库授权所有人
- 采用数据库连接池连接到mysql时,因应用中没有关闭ResultSet导致的memory leak问题
- 深入浅出Mysql(三)
- Powerdesigner关联Mysql数据库建表之真·详细步骤(有图)
- mysql ERROR 1045 (28000): Access denied for user的解决方法
- mysql性能优化-慢查询分析、优化索引和配置
- 批量修改数据库中某个字段里面的部分内容(mysql数据库replace的用法)
- Mysql 小结
- mysql知识点
- MYSQL简单安装配置
- MySQL创建用户与授权方法
- MySQL 数据库、表、表结构、导入导出等相关命令
- 1.添加mysql的jar包 2.加载JDBC驱动
- sql:MySQL 6.7 表,视图,存储过程结构查询
- 【mysql学习笔记】-检索数据基本用法
- mysql 添加时间戳
- 简单的mysql主从配置
- Read_only