问题标签 [postgresql-performance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - Postgres 查询的性能
我有以下查询,我想对其进行优化。
EXPLAIN ANALYZE
返回以下信息:
我可以做些什么来提高查询的性能?
我试图添加索引,但这使事情变得更糟(没有索引,查询运行得更快)。
更新 1:
询问
具有以下性能特点:
表定义:
sql - 如何加快 Postgresql 中的复杂查询
如何加快以下查询执行速度?检索 37 条记录需要 65 秒。大佬们有什么解决办法吗?(我在 x86_64-unknown-linux-gnu 上使用 PostgreSQL 9.1.6,由 gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) 编译,64 位)这是查询:
这是一个解释分析输出(另见 explain.depesz.com):
postgresql - 优化 Postgres 对时间戳范围的查询
我定义了下表和索引:
我在时间戳上创建了一个索引,created
如下所示:
这是我的查询:
在记录数量开始增长(大约 500 万条)之前,这一直运行良好,现在它需要永远返回。
解释分析揭示了这一点:
到目前为止,我已经尝试过设置:
还创建了:
没有任何效果。我究竟做错了什么?为什么选择顺序扫描?索引应该使查询快速。有什么可以优化的吗?
postgresql - 优化适用于“无行”的 max() 聚合
我有一个要针对 PostgreSQL 9.2 优化的查询:
它需要永远运行,所以我想我可以将它重写为
0
除非表中没有行,否则它需要返回。我尝试了一些案例陈述的组合,但它们似乎不起作用。有什么建议么?
计划一个空表:
成本为 58k,表有 1,190,000 行,但执行计划相同。
sql - 尝试多个 SELECT 直到结果可用的方法?
如果我想以递减的精度在表中搜索单行怎么办,例如:
当这给我没有结果时,试试这个:
当这给我没有结果时,试试这个:
是否有可能只用一种表达方式来做到这一点?
当我没有两个但例如三个或更多搜索参数时也会出现问题。有没有通用的解决方案?当然,当搜索结果按相关性排序时,它会派上用场。
postgresql - Postgres 查询优化(强制索引扫描)
以下是我的查询。我试图让它使用索引扫描,但它只会 seq 扫描。
顺便说一下,该metric_data
表有 1.3 亿行。该metrics
表有大约 2000 行。
metric_data
表列:
如何让这个查询使用我的 PRIMARY KEY 索引?
解释:
sql - How do I speed up counting rows in a PostgreSQL table?
We need to count the number of rows in a PostgreSQL table. In our case, no conditions need to be met, and it would be perfectly acceptable to get a row estimate if that significantly improved query speed.
Basically, we want select count(id) from <table>
to run as fast as possible, even if that implies not getting exact results.
sql - 按相关性查询和排序
我在这样的查询中有多个条件:
WHERE 语句由 3 个条件组成:
- 文字匹配
- 外键匹配
如果我想按相关性对结果进行排序怎么办,这取决于:
- 文本匹配的精确程度
- 完全满足多少条件(例如文本匹配和外键)
这是两个问题,但我认为有时这些问题结合起来会很方便。通过这个,我指的是我以前的帖子中提出的一个问题(在结果可用之前尝试多个 SELECTs 的方法?)。
提前致谢!
postgresql - 将日期时间约束添加到 PostgreSQL 多列部分索引
我有一个名为 的 PostgreSQL 表queries_query
,它有很多列。
其中两个列created
和user_sid
经常在我的应用程序的 SQL 查询中一起使用,以确定给定用户在过去 30 天内执行了多少次查询。我在最近 30 天之前的任何时间查询这些统计数据是非常非常罕见的。
这是我的问题:
我目前通过运行在这两列上创建了多列索引:
但我想进一步限制索引只关心创建日期在过去 30 天内的那些查询。我尝试过执行以下操作:
但这会引发一个异常,指出我的函数必须是不可变的。
我很想让这个工作,这样我就可以优化我的索引,并减少 Postgres 执行这些重复查询所需的资源。
postgresql - postgresql 中的左外连接性能问题
如何提高下面给出的查询的性能