3

我正在使用express(好吧,也许会移至koa)构建一个 json API。我将我的数据存储在 PostgreSQL 数据库中,并用于pg-promise从中获取数据(async/await通过 babel)。

我对 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;
}

我想知道(如果可能SELECT,以编程方式)消耗了多少时间。(不是承诺从构建到解析的时间,这可以通过两个时间戳来实现,而是数据库服务器处理查询所消耗的实际时间)。

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

4

1 回答 1

2

正如您自己提到的那样,在您的案例中,有两种方法可以分析执行时间:

  • 从你调用一个方法pg-promise到返回结果的时间
  • 服务器执行查询所需的时间

第一个是使用方法resultResult最容易做到的,它使用具有属性的对象进行解析duration

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

于 2016-11-23T09:35:50.080 回答