软件下载吧文章资讯

分类分类

修改一行代码提升 Postgres 性能 100 倍

2024-02-14 10:19作者:下载吧

在一个(差)的PostgreSQL 查询中只要一个小小到改动(ANY(ARRAY[…])to ANY(VALUES(…)))就能把查询时间从20s缩减到0.2s。从最简单的学习使用 EXPLAIN ANALYZE开始,到学习使用 Postgres community 大量学习时间的投入将有百倍时间到回报。


使用Postgres监测慢的Postgres查询


在这周早些时候,一个用于我们的图形编辑器上的小表(10GB,1500万行)的主键查询,在我们的一个(多个)数据库上发生来大的查询性能问题。


99.9%到查询都是非常迅速流畅的,但是在一些使用大量的枚举值的地方,这些查询会需要20秒。花费如此多到时间在数据库上,意味着使用者必须在浏览器面前等待图形编辑器的响应。很明显只因为这0.01%就会造成很不好到影响。

查询和查询计划


下面是这个出问题的查询



SELECT c.key,
       c.x_key,
       c.tags,
       x.name
 FROM context c
 JOIN x
   ON c.x_key = x.key
WHERE c.key = ANY (ARRAY[15368196, — 11,000 other keys –)])
  AND c.x_key = 1
  AND c.tags @> ARRAY[E’blah’];
展开全部

相关文章

说两句网友评论
    我要跟贴
    取消