首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点JS -续订过多的连接- CPU使用率100%

节点JS -续订过多的连接- CPU使用率100%
EN

Stack Overflow用户
提问于 2020-09-29 11:58:38
回答 1查看 2.6K关注 0票数 0

我正在使用第三方websocket连接。Websocket发送数组长度为100+的数据。因此,我必须将每条记录都签入数据库表中,以便进行一些计算(需要)。

可能是在这个循环中,它导致内存和CPU的高使用率。

我的分贝。

代码语言:javascript
复制
const sequelize = new Sequelize(DB_NAME, DB_USER, DB_PASSWORD, {
  dialect: 'mysql',
  host: DB_HOST,
  port: DB_PORT,
  logging: false,
  dialectOptions: {
//  useUTC: true
  },
  timezone: '+00:00', 
  pool: {
    max: 500,
    min: 0,
    idle: 10000,
    // @note https://github.com/sequelize/sequelize/issues/8133#issuecomment-359993057
    acquire: 100*1000,
  }
}); 

一个循环代码:

代码语言:javascript
复制
for(const theOdd of records) {
  
  await odd_records.count() // First query
  await matches.findOne() //Second query
  .
  .
  .
 //End with 5-6 queries for each row.
}

如何进行优化?

有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2020-09-29 12:06:37

假设每条记录查询6次(假设有100条记录)。所以,你询问了600次。

我假设每个记录都有一个唯一的id。

  1. 在循环之外执行常量值查询,该循环始终返回相同的结果。

query.

  • Further,await odd_records.count()看起来是常量值。

  • 收集所有记录的id,并在一个Promise.all中获取每个记录的所有特定数据,如果可能的话使用Promise.all查询。

它将把查询数量减少到6个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64119155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档