我正在学习节点。
使用 Express 和 Node-Mysql,我能够成功地查询我的 mysql 数据库并将结果作为 JSON 返回给客户端。
但是,它太慢了。对于 LIMIT 为 100 的简单查询,大约需要 6 秒才能获得响应。
根据我的记录器,数据库查询只需要大约 8 毫秒即可运行 - 所以我不认为 node-mysql 是问题所在。
但我唯一要做的另一件事是将结果集传递给要转换为 json 的响应对象。
这是我的代码,大致如下:
路线:
app.get( "/exercises", function( req, res ){
exercises.get( req.query, function( result ){
res.json( result );
});
});
模型:
module.exports.get = function( params, cb ){
var sql = "SELECT * FROM exercises LIMIT 100";
db.do( sql, function( result ){
var response = {};
response.data = result[ 0 ];
response.meta = result[ 1 ][ 0 ];
cb( response );
});
};
D B:
module.exports.do = function( sql, vals, cb ){
var selectStart = +new Date();
pool.acquire(function( err, db ){
db.query( sql, vals, function( err, result ) {
cb( result );
console.log( "Query Execuction: %d ms", +new Date() - selectStart );
pool.release( db );
});
});
};
有谁知道我可能做错了什么/为什么将结果集发送给客户需要这么长时间?
在此先感谢您的帮助。