CNode

sequelize 实例过多导致内存泄漏问题

问答
Ddingyuanwu发布于8 年前最后回复8 年前9 回复4091 浏览0 收藏

在使用sequelize的时候,对于用户记录表是每一个用户都会有一张表, 当每一个用户访问的时候都会新建一个model,随着用户数量的增加,model越来越多, 之前的model由于闭包的其他的问题没有释放,导致model的数量一直在增加, 类似的表项还有几个,这就导致了现在的问题,内存泄漏的情况比较严重, 现在修改使用方法的成本很高,有没有其他的解决办法, 求大神赐教

查看回复

回复 (9)

D
dingyuanwu#1·8 年前

@hyj1991 怎么释放?model=null?

P
pretty-foam#2·8 年前

感觉数据结构设计有问题,怎么每一个用户一个表?

Y
yuedun#3·8 年前

这明显就是表设计问题,一个用户一张表,不要说内存,你的数据库也要崩溃

D
dingyuanwu#4·8 年前

对,这个的表设计是有问题,现在没有时间去重构这部分的代码,只能先稳住它,后续肯定会重构这部分代码的 前人挖坑,后人填嘛 基本都是这样

H
hyj1991#5·8 年前

之前的model由于闭包的其他的问题没有释放,导致model的数量一直在增加

不是都查到原因了么,把本来应该释放掉的 model 正确释放掉就好了

D
dingyuanwu#6·8 年前

还有没有其他比较简单的实现方式,model=null?

D
dqr33468asd#7·8 年前

每个一张表?不如考虑写入redis然后定时同步 每张表model都不一样?

D
dingyuanwu#8·8 年前

@dqr33468asd model的结构是一样的,但是根据用户不同,表名是:xxx_${userId}_xxx这种格式,就导致了model有很多,这样的写法之前的代码里很多,之前的访问量不大,这个问题不是很明显,目前访问量增大了很多,这个问题就暴露出来了

参与回复
登录后即可参与回复。登录