在Node.js中进行数据库查询分析

我正在build立一个JSON API使用express (好吧,也许会移动到koa )。 我将数据存储在PostgreSQL数据库中,并使用pg-promise从数据中获取数据(通过babel进行async/await )。

我对node.js完全陌生,在这个环境下我找不到关于性能测量的任何信息。

再具体一点:

 module.exports.get_hierarchy = async function () { const rows = await postgres.any('SELECT id, parent, title, permission FROM heading'); var result = []; // some black magic goes here... return result; } 

我想知道( 如果可能,编程)多less时间SELECT消耗。 (不是承诺从构build到解决的时间,这可以通过取两个时间戳来实现,而是由DB服务器用来处理查询的实际时间)。

这可以实现吗? 如果是这样,怎么样?

正如你自己提到的那样,有两种方法来分析你的情况下的执行时间:

  • 从你调用pg-promise的方法到获得结果的时间
  • 服务器执行查询所花费的时间

第一个是使用方法结果最容易的方法,用Result对象具有属性duration来解决。

第二个需要直接执行EXPLAIN ,通常通过每个PostgreSQL安装附带的pgAdmin工具,或者你可以使用psqlterminal。