首頁  >  問答  >  主體

javascript - Node並發存取時與猜想的結果不致

app.get('/', function (req, res) {
    var now = +(new Date())
    connection.query('select count(*) from ACTIVITY group by name', function (err, result, fields) {
        var curr = +(new Date())
        var tmp = '耗时:' + (curr - now)
        console.log(tmp)
        res.send(tmp)
    })
})

以下為補充

app.get('/', function (req, res) {
    var now = +(new Date())
    pool.getConnection(function (err, conn) {
        console.log('--连接池连接成功!' + +(new Date()))
        conn.query('select count(*) from ACTIVITY group by name', function (err, result, fields) {
            var curr = +(new Date())
            var tmp = '耗时:' + (curr - now)
            console.log(tmp)
            res.send(tmp)
        })
    })
})
#
怪我咯怪我咯2647 天前761

全部回覆(1)我來回復

  • 某草草

    某草草2017-06-22 11:56:23

    時間起始是 query 之前,結束是 query 完成,所以每個時間是 query 運行的時間,

    Node 是非同步了,但你用的是同一個 connection,connection 本身是不是需要排隊呢?就我所知,多數資料庫在同一個 connection 中執行的 SQL 都是排隊挨個進行的…多個 connection 之間可能會並行。

    回覆
    0
  • 取消回覆