求助一下,公司项目是分库的,使用sequelize建立连接后会把连接保存在内存中。当分库很多的时候,内存占用过高,请问有什么办法可以解决。使用的是Koa框架。
发布于 6 年前 作者 1053910251 3360 次浏览 来自 问答

求助一下,公司项目是分库的,使用sequelize建立连接后会把连接缓存保存在内存中。当分库很多的时候,内存占用过高,请问有什么办法可以解决。使用的是Koa框架。 目前思路:由于sequelize会import model建立表的映射。每个连接都有一份相同的model数据。目前想实现多个数据库连接共享model对象来减少内存的占用。但是不知道怎么弄,求大佬指教。

9 回复

清除 require.cache?

来自酷炫的 CNodeMD

会有多少库~难道>100个

[CNodeMD]

@dbit-xia 看业务数的,现在业务数就过百了,就有100多个sequelize实例保存在内存中了,但是这些实例的model其实是一样的。所以内存占用很高。

@zswnew 不是require的问题吧。。

求大佬指教

不需要每一个业务都新建一个sequelize实例吧,可以复用的,基本上一个DB一个sequelize实例就行了

@dingyuanwu 关键一个业务就是一个DB啊。根据业务来分库的

@1053910251 不产生过多的model就行了,可以考虑sequelize的query方法,该方法只有DB实例,不会产生model,但是需要自己拼接sql语句,看你具体的业务和团队的要求了,可以看一下

回到顶部