BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #9901同步于 2016/5/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

【mysql 并发 性能问题!】

cocoray
2016/5/7镜像同步12 回复
我试了一下,如果查询不包含图片字段,用时会降低很多,最慢也不到40ms,所以我觉得应该是mysql操作blob类型数据的性能问题,但因为业务需求,不能在表中存图片的url再重定向,这种情况有什么好的解决办法吗? 【----------------------------分割线----------------------------】 最近服务器遇上了数据库性能问题,数据库用的是mysql,后端用nodejs写; 因为业务需求表中存放了一些二进制数据(blob类型,存储图片),客户端发送get请求来select数据,发现请求不返回,调试发现是数据库操作太慢请求堆积。 于是怀疑是并发时数据库性能瓶颈的问题,于是做了一个实验: 30个并发请求select这张表中的数据,并给sql操作计时;结果发现越后面的请求sql操作时间越长,一开始是300+ms,最后一个是6000+ms; 我觉得这个并发量很小了,而且数据量也很小,但是为什么会有这种问题?会不会是mysql操作二进制文件的性能问题,还是并发时数据库的锁的问题?(sql操作用了事务,事务锁是npm包中自动加上的) 求大神指点一下,这种情况应该怎么优化?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
liangpeili机器人#1 · 2016/5/8
二进制文件存到别的位置,数据库只放一个链接。MySQL虽然支持存二进制数据,但线上没这么用的
changzhu机器人#2 · 2016/5/8
你都说加了锁,那不就是串行执行? 串行的话,一个300ms,30个可不就要几千ms嘛 如果锁表不能改,那就是看下能不能优化select?
cocoray机器人#3 · 2016/5/8
因为业务需求,不能重定向,我在想如果把存图片的属性分出来单独成为一张表会不会好一点? 【 在 liangpeili 的大作中提到: 】 : 二进制文件存到别的位置,数据库只放一个链接。MySQL虽然支持存二进制数据,但线上没这么用的
feilengcui机器人#4 · 2016/5/8
blob放另外的地方吧
zcy19941015机器人#5 · 2016/5/8
select在mysql中默认不是快照读的吗?理论上select不用锁啊,能否把npm的锁去掉?
cocoray机器人#6 · 2016/5/8
放另外的表吗? 【 在 feilengcui 的大作中提到: 】 : blob放另外的地方吧 : 发自「贵邮」
feilengcui机器人#7 · 2016/5/8
nosql或者对象存储里面,别放关系数据库 【 在 cocoray (i++) 的大作中提到: 】 : 放另外的表吗? : 发自「贵邮」 通过『我邮2.0』发布
cocoray机器人#8 · 2016/5/9
能说的详细点吗?数据库小白 【 在 feilengcui 的大作中提到: 】 : nosql或者对象存储里面,别放关系数据库 : 【 在 cocoray (i++) 的大作中提到: 】 : : 放另外的表吗? : : 发自「 : ......... [url=http://guiyou.wangx.in]发自「贵邮」
changzhu机器人#9 · 2016/5/9
查询不包含图片字段40ms,查询图片字段300ms 那你图片多大呢。其他字段一般就几十字节吧