我正在使用 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 ,它解析为具有属性 duration
的 Result
对象。
而第二个需要直接执行EXPLAIN ,通常通过每个 PostgreSQL 安装附带的 pgAdmin
工具,或者您可以使用 psql 终端。
关于node.js - Node.js 中的数据库查询分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754798/