NodeJS MySQL:测量查询执行时间

时间:2014-10-01 12:15:02

标签: mysql node.js optimization execution-time node-mysql

我在共享托管平台上,想要限制我的应用程序中的查询,以便如果总执行时间超过一定数量,那么我可以让应用程序冷静然后恢复以后。

要做到这一点,我想知道我的每个查询需要多长时间实时处理并在应用程序中进行管理,而不是通过外部进行分析。

我已经在PHP中看到了在查询之前和之后记录时间的示例(even phpMyAdmin does this),但这不会在NodeJS或异步运行查询的任何内容中工作。

所以问题是:我如何在NodeJS中获取查询的实际执行时间?

作为参考,我使用此模块来查询MySQL db:https://github.com/felixge/node-mysql/

3 个答案:

答案 0 :(得分:5)

一个选项只是在查询之后的时间戳和查询之后的时间戳,并检查区别如下:

// get a timestamp before running the query
var pre_query = new Date().getTime();
// run the job
connection.query(query, function(err, rows, fields) {
  // get a timestamp after running the query
  var post_query = new Date().getTime();
  // calculate the duration in seconds
  var duration = (post_query - pre_query) / 1000;
});

答案 1 :(得分:0)

如果您使用rest api,则可以使用邮递员。在邮递员中运行查询,然后在该部分的右中角查找“时间:”,如附件中的图片所示。enter image description here

答案 2 :(得分:0)

console.time('100-elements');
for (let i = 0; i < 100; i++) {}
console.timeEnd('100-elements');
// prints 100-elements: 225.438ms

标签必须是唯一的并且与开始和结束时间相同

在 nodejs 中运行良好。

这里是documentation on nodejs

相关问题