mysql - Node.js mysql查询响应延迟

标签 mysql node.js

我正在使用node.js mysql 驱动程序。但是当服务器处于高负载时,我猜mysql正在做查询队列。我怎样才能防止这种情况发生?我想立即查询。

我该如何解决这个问题?我的查询很滞后。

我的代码:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'ip',
  user     : 'db',
  password : 'pass'
});
connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }
  console.log('connected as id ' + connection.threadId);
});
connection.query('USE db');
connection.query({ sql:"select token,COUNT(token) as sayim from tokens where username=? or anon=?", timeout: 10000},[data,data],function(err,info) {
        if (info[0].sayim != 0) {
            callback(info[0].token);
        }else{
            callback("0");
        }
    });

Ps:服务器不会为此返回任何错误。但是当我执行查询时,服务器在大约 10 秒后响应。如果服务器没有处于高负载状态,它会立即响应。

最佳答案

您可以使用PoolConnection相反。

var connection = mysql.createPool({
  host     : 'ip',
  user     : 'db',
  password : 'pass',
  database : 'db'
});

想到的另一件事:在您的示例中,您一个接一个地使用异步函数,这也会给您带来一些麻烦。

关于mysql - Node.js mysql查询响应延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30900634/

相关文章:

node.js - Node 、 express 、 Jade : How to process form data

mysql - Codeigniter 不返回数据库中存在的一些记录

MySQL:将逗号分隔值与不同行中的值进行比较

mysql - SQL更新具有多个条件的多表

node.js - nodejs 中是否有相当于 Python 的 virtualenv?

node.js - 使用 Sails 服务 StyleSheet 和 JS

php - 使用 PHP 从 MySQL 动态选择多个下拉选项

php - 为什么 PHP 不读取我的 $_POST 数据?

node.js - 如何从 Node.js 缓冲区上的 UInt64 读取 Double?

node.js - 我应该将 gulpfile.js、package.json 和源文件上传到生产环境吗?