如何并行运行sql查询

plupiseo  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(296)

我有这个代码,有3个sql查询和运行一个接一个。查询的运行时间太长了,所以我想有没有什么方法可以并行运行所有这些查询,并在所有查询停止后返回结果。代码如下:

async function getChartData (req, res){
    try{

        var sqlquery=" " 
        var sqlsecond=" "
        var sqlthird=" "

        let result1 = await selectquery(sqlquery)

        let result2 = await selectquery(sqlsecond)

        let result3 = await selectquery(sqlthird)

        return res.json({result1:result1, result2:result2, result3:result3});

    }
    catch(err){
        // response.status(500).end();
        console.log(err);
    }
  }

async function selectquery(sqlquery){
    return new Promise((resolve, reject) => {
        mysqlConnection.query(sqlquery,(err,result)=>{
            if(err){
                reject(err);
            }
            else{
                resolve(result);
            }
        });
    });
}
mysqlConnection.end();
ffdz8vbo

ffdz8vbo1#

这应该起作用:

const sqls = [sqlquery, sqlsecond, sqlthird]; 
const [result1, result2, result3] = await Promise.all(sqls);

相关问题