Mat*_*exQ 3 postgresql sequelize.js
我对查询有疑问:
SET client_min_messages TO warning;SET TIME ZONE INTERVAL '+00:00' HOUR TO MINUTE;
当我在 postgres 中执行查询时:select query from pg_stat_activity我经常在执行我定义的查询之前看到这个查询。我想禁用查询。我的列有一个带时区的时间戳,但我的默认时区是 UTC。我可以做什么来删除它?它会影响性能吗?
SET用于设置运行时参数,而不是查询数据库。我什至无法EXPLAIN ANALYZE跑步SET;基于编程的复杂性,预计时间类似于最短的查询。我怀疑它会对性能产生有意义的影响,但是可以肯定的是,一些字节正在被传递和解析。
这些命令来自 Sequelize 的connection-manager.js。它们是在启动连接时生成的,通过
if (this.sequelize.options.clientMinMessages !== false) {
query += `SET client_min_messages TO ${this.sequelize.options.clientMinMessages};`;
}
if (!this.sequelize.config.keepDefaultTimezone) {
const isZone = !!moment.tz.zone(this.sequelize.options.timezone);
if (isZone) {
query += `SET TIME ZONE '${this.sequelize.options.timezone}';`;
} else {
query += `SET TIME ZONE INTERVAL '${this.sequelize.options.timezone}' HOUR TO MINUTE;`;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以在选项对象中调用(new Sequelize()此处 为 clientMinMessages;keepDefaultTimezone 的记录较少)。clientMinMessages: false, keepDefaultTimezone: true
我还没有介绍过这些。由于已经设置了 UTC 时区,keepDefaultTimezone 似乎是安全的。请注意,如果 Sequelize 未将 postgres 设置client_min_messages为WARNING,postgres 可能会默认为稍低的通知阈值 ,NOTICE并向 Sequelize 发送一些额外的消息。这些调整是否值得进行将取决于您的系统。
| 归档时间: |
|
| 查看次数: |
1630 次 |
| 最近记录: |