node.js - Node.js 中的数据库查询分析

标签 node.js postgresql asynchronous profiling pg-promise

我正在使用 express 构建一个 json API(好吧,也许会转移到 koa)。我将数据存储在 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 消耗了多少时间。 (不是时间 promise 从构建到解决,这可以通过取两个时间戳来实现,而是数据库服务器处理查询实际消耗的时间)。

这能实现吗?如果是,怎么办?

最佳答案

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

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

第一个是最简单的,使用方法 result ,它解析为具有属性 durationResult 对象。

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

关于node.js - Node.js 中的数据库查询分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754798/

相关文章:

php - NodeJS 如何对 Buffer 进行哈希处理?

postgresql - where 子句中的 lower() 与模式不匹配

SQL (PostgreSQL) 组之间的唯一值

javascript - 如何在循环之后/之前管理异步功能

javascript - 我应该如何在 JavaScript 中一个接一个地执行函数?

node.js - 架构 : Multiple Mongo databases+connections vs multiple collections with Express

node.js - 不带 key 查询数据(AWS DynamoDB SDK Nodejs)

mysql - 我应该在 node.js 中使用哪个数据库?

关于时区的 PostgreSQL 提取函数

ruby - 使用什么异步 Ruby 服务器?