把三个月的项目周期压缩到2周了,于是哥手抖了,图片一律进了MySQL。
现在项目上线了,问题出在list页面(PS:列表中哥分页都来不及搞),本来如果是纯文字性的列表是不会有问题的,但是因哥实在是贱,这种情况下还在考虑用户体验,在列表中加了个图片预览列,虽然用户叫好了,但是数据库动不动就报 Mysql gone away。
因为用户已经看到界面,所以现在无法在去掉那个图片列字段。
我想了下,问题应该是出在显示list页面时,取出的数据量过于庞大(图片每个大概1M,初始阶段,大概100条数据左右,这样每次一个select后占用的内存在100M左右)。
还有救没?
1
mhycy 2015-01-13 11:39:32 +08:00
除了立刻搬出来还能咋样?
|
2
xiaogui 2015-01-13 11:40:23 +08:00
搬出来也很简单的吧。
|
3
cevincheung 2015-01-13 11:42:22 +08:00
立刻搬出……
|
4
zzNucker 2015-01-13 11:42:22 +08:00
半夜搬出来吧。。。。
|
5
knightluffy 2015-01-13 11:44:22 +08:00
图片存数据库,你也是醉了。。
|
6
coolwind 2015-01-13 11:53:06 +08:00
临时 试一试 mysql配置加大 max_allowed_packet = 128M
然后把图片移出mysql |
7
SoloCompany 2015-01-13 12:37:04 +08:00 via Android 1
可以不一次select啊,比如只select前256字节,读取meta比如图片长宽等等,然后在前端滚动到位置的时候才显示图片
|
8
billwang 2015-01-13 13:05:21 +08:00
楼主可知道,现在很多生产环境系统都把二进制文件存入数据库中,只不过是oracle数据库。如果迁出最好接入类似于非结构化平台中去。
|
9
Mac 2015-01-13 13:24:34 +08:00
既然还没交付,改成upload到目录有什么难处么?预览也很简单啊,缩略图即可
|
10
em70 2015-01-13 13:30:41 +08:00 via Android
分页的话也没问题吧
|
11
Actrace 2015-01-13 13:37:39 +08:00
一个是管道的size限制,一个是整取。
在管道限制不大的情况下,如果多行记录一次无法取出,可以在逻辑上单独去取图片数据,一行一行的取,反正有主键也是瞬间的事情。 |
12
huigeer 2015-01-13 13:46:21 +08:00
醉了, mysql: 怪我咯
|
13
feiyuanqiu 2015-01-13 13:55:50 +08:00
写脚本搬吧...另外这满篇的「哥」看的真是不舒服
|
14
akira 2015-01-13 14:02:24 +08:00
图片列字段必须去掉,换成存图片目录或者图片url吧。
|
15
jianghu52 2015-01-13 14:14:43 +08:00
那不如你先老实儿的把分页做了,这样的话查询,加载啥的都会轻松点吧。
|
16
sun1991 2015-01-13 14:26:41 +08:00 1
再加一列thumbnail, 存放小图. 预览的时候读小图而不是原始尺寸.
|
17
lbp0200 2015-01-13 14:50:39 +08:00
16楼+1
|
18
cevincheung 2015-01-13 14:52:34 +08:00
mongodb-gridfs+nginx-gridfs 你绝逼需要
|
19
cst4you 2015-01-13 14:53:17 +08:00
跑个批处理把图片select出来然后保存到文件即可...楼主别懒
|
20
y10n 2015-01-13 17:34:32 +08:00
select * 惹祸了
|
21
kaneg 2015-01-13 22:20:36 +08:00 via iPhone
用缓存。类似的设计以前做过,当时是文本转换图片。在第一次访问的时候把内容load出来后写到文件中去,之后访问先查文件在不在,在的话直接redirect过去。
|
22
Daghlny 2015-01-13 23:24:31 +08:00
以前在学校做项目的时候就把图片加进mysql了。。。
网址:123books.sinaapp.com |
24
atan 2015-01-14 00:51:05 +08:00
可以用类似select2那样的组件,支持ajax加载,一次只加载10条,滚动下去后再加载10条。。。
|
25
zeayes 2015-01-14 09:20:36 +08:00
趁现在数据量还不是很大,赶紧迁移出来吧。图片、视频这样的东西还是存文件系统比较好。
|
27
Tianpu 2015-01-16 00:24:32 +08:00
thumbnail存数据库挺合理的,然后用data uri,简直是最优解
大图没有必要存数据库 |