![](/img/trans.png)
[英]After creating inheritance tables in postgres, queries to select data from parent takes more time
[英]Postgres database queries from express server time out after multiple select queries
我正在运行一个节点(快速)rest API,一个 postgres 数据库和一个索引器,它在同一台服务器上填充数据库。
出于某种原因,当我从 rest api 对数据库进行大量查询时,在一定数量的查询之后,以下所有查询都开始超时。 似乎没有任何锁,我需要重新启动我的 docker 容器以使数据库再次返回。
我在我的 rest api 中添加了一些日志,以查看似乎超时的地方:
console.log("get here1")
pool.query(totalQuery, [], (error, results) => {
console.log("get here2");
if (error) {
console.error(error)
res.status(404).json(error)
}
const total_markets = results.rows[0] ? results.rows[0].total_markets : 0;
pool.query(query, values, (error, results) => {
console.log("get here3");
if (error) {
console.error(error)
res.status(404).json(error)
}
res.status(200).json({count: total_markets, data: results.rows})
})
});
服务器日志如下:
get here2
get here3
get here
get here2
get here3
get here
get here
get here
get here
我真的不确定是什么导致我的查询超时,但似乎整个数据库都无法访问。
当我附加到 docker 容器并使用psql
查询数据库时,查询工作正常。
原来这是一个 node.js(pg 更具体的问题)
我在池配置中添加了超时属性:
const pool = new Pool({
connectionString: process.env.CONNECTION_STRING ? process.env.CONNECTION_STRING : connectionString,
ssl: production,
max : 5,
connectionTimeoutMillis : 5000,
idleTimeoutMillis : 30000
});```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.