Node.js - 崩溃服务器的并发SQL查询

时间:2013-03-12 11:45:58

标签: mysql node.js

我有一个类似Twitter的基本应用程序,当一个用户在线时可以正常工作。但是,当多个用户联机并尝试执行SQL查询时,服务器崩溃。

这种情况正在发生,因为该函数关闭了第一个用户的数据库,而第二个用户仍处于中等功能状态,然后第二个用户尝试关闭已经关闭的数据库,从而导致崩溃。

这是一个基本功能作为例子:

function showAllUsers(req, res){
  dbConnect();
  var query = 'SELECT * FROM USERS';
  connection.query(query, function (err,rows,fields){
    if (err) {
        throw err;
    }
    dbClose(req,res);
    console.log(rows);
    res.render('allUsers', { user: req.user, message: req.flash('info'), users: rows })
  })
}

我正在使用npm的mysql包,但我假设我没有正确使用它。我目前正在每次查询之前打开数据库,然后立即关闭它。

是否有更安全的方法可以执行此操作,或者我可以将其保持打开状态直到服务器退出?

1 个答案:

答案 0 :(得分:1)

使用connection pools为我解决了这个问题。