首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加速Sql查询

加速Sql查询
EN

Stack Overflow用户
提问于 2019-07-10 16:51:14
回答 1查看 45关注 0票数 0

我有一个Postgresql表,大约有5000万个条目。现在,我想找到两个id,通过查找第一次和最后一次出现时间戳,给我一个范围的条目。

找到“第一个”id需要大约100毫秒。

但是找到第二个身份大约需要3分钟。

查询查找第一个id

代码语言:javascript
复制
SELECT id 
FROM transactions 
WHERE "hashBlock" = 
    (SELECT hash 
    FROM blocks 
    WHERE n_time > 1262300400  
    ORDER BY id ASC
    LIMTI 1)
ORDER BY id ASC
LIMTI 1

查询查找第二个id

代码语言:javascript
复制
Select id 
FROM transactions 
WHERE "hashBlock" = 
    (SELECT hash 
    FROM blocks 
    WHERE n_time < 1306879200  
    ORDER BY id DESC
    LIMTI 1)
ORDER BY id DESC
LIMTI 1

我想,较长的运行时会导致查询从第一个id一直到找到一个满足查询的id,而第二个则从最后一个id开始。

有没有办法加快第二个查询的速度?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 17:28:58

如果您还没有索引,我将创建以下索引:

代码语言:javascript
复制
create index ix1 on transactions ("hashBlock", id);

create index ix2 on blocks (n_time, id, hash);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56975307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档