sequelize 实例过多导致内存泄漏问题
发布于 6 年前 作者 dingyuanwu 3199 次浏览 来自 问答

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

9 回复

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

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

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

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

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

@hyj1991 怎么释放?model=null?

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

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

@yuedun 也许就两个用户。。。?

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

回到顶部