在MySQL中拥有这么多连接是正常的吗?

时间:2016-09-12 14:20:57

标签: mysql go connection

mysql connections

我在控制器的init函数中连接数据库,如:

db, err = sql.Open("mysql", "user:pass@tcp(<ip>:3306)/<db>")
if err != nil {
    log.Fatal(err)
}

err = db.Ping()
if err != nil {
    log.Fatal(err)
}

然后我准备一些语句(db.Prepare)并最终在代码中的某处执行它们,而不创建新的数据库连接或任何奇怪的东西。只是放手处理连接池。

但正如您在图片中看到的那样,我获得了大量连接和中止连接,导致服务器运行缓慢甚至崩溃。

为什么会这样?此外,我有大约2000个同时在线用户,每秒约20个查询。我不会认为这很重要,以防万一重要。

修改 这是我如何运行准备好的语句。我有2个选择,1个更新和1个插入。正在运行的选择如下:

err = getStatement.QueryRow(apiKey).Scan(&keyId)
if err != nil {
    res, _ := json.Marshal(RespError{"Statement Error"})
    w.Write(res)
    return
}

插入和更新:

insertStatement.Exec(a,b,c)

0 个答案:

没有答案