我们使用NodeJs做服务器开发,使用的是Express框架,数据库用的阿里云的MySQL RDS,nodejs连接mysql的包选用的是mysql(https://www.npmjs.com/package/mysql)
这几天只要UV上到1000,就会出现“跟数据库有关的请求全部无返回”的情况,一直是pending状态。页面是都能正常返回。只要重启一下服务器就又好了。
从服务器后台和数据库服务器后台的日志中都看不到任何错误,监控也都正常。 请问这是什么情况啊?大概是哪个地方出了问题?该怎么解决?
关键代码片段如下: //文件1,创建连接池,然后输出 var connectionPool = mysql.createPool(util.extend({}, config.db)); module.exports = connectionPool;
//文件n,之后所有的数据库操作都引入上面导出的pool,然后写成一个方法的形式对外输出,如下所示 var pool = require("./dbConnectionPool"); module.exports = { addUser: function (username, password, callback) { pool.getConnection(function (err, con) { con.query(‘insert into user(userName, password, emailVerified, createTime, updateTime) values(?, ?, 0, NOW(), NOW())’, [username, password], function (err, result) { if(err) console.error(err); callback(err, result); con.release(); }); }); }, }
PS:我们现在的数据库操作代码都是抄的网上的入门级教程,在实际应用中总感觉不够靠谱。请问哪里可以找到企业级的MySQL数据库操作教程啊,比如要考虑哪些方面,如何编写可靠的数据库代码等。多谢