我正在使用第三方Websocket连接。 Websocket发送数组长度为100+的数据。 因此,我必须将每条记录检入数据库表中以进行一些计算(必需)。
可能在此循环中,这会导致内存和CPU使用率过高。
我的数据库配置。
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,
}
});
一个循环代码:
for(const theOdd of records) {
await odd_records.count() // First query
await matches.findOne() //Second query
.
.
.
//End with 5-6 queries for each row.
}
如何优化?
有帮助吗?
答案 0 :(得分:0)
比方说,您为每个记录查询6次(假设有100条记录)。因此,您要查询600次。
我假设每个记录都有一个唯一的ID。
await odd_records.count()
在我看来是不变的价值。它将查询数量减少到6。