sql最后记录的行花费太长时间查询

时间:2020-08-31 08:59:50

标签: sql postgresql

我正在使用以下查询来获取表的最后一行。此代码似乎是应针对此类查询执行的操作。所以我想知道为什么表格要花这么长时间才能输出结果。 我正在寻找可能导致长时间查询的潜在原因。例如,也许该行不在顶部(我使用某些条件),并且如果查询是从表的顶部到底部读取的,则需要花费时间才能到达该行?还是查询需要先读取所有表才能得出结论,哪一行是正确的(我认为情况并非如此)?

对于了解“排序算法”的工作原理所做的贡献。

代码:

SELECT created_at , currency, balance 
from YYY
where id in (ZZZ) and currency = 'XXX'
order by created_at desc
limit 1

1 个答案:

答案 0 :(得分:0)

这是您的查询:

select created_at, currency, balance 
from YYY
where id in (ZZZ) and currency = 'XXX'
order by created_at desc
limit 1;

如果查询没有索引,则引擎需要扫描整个表,选择与where子句匹配的行,对这些行进行排序,然后选择最大为created_at的行。 / p>

如果您在YYY(currency, id, created_at desc)上有一个索引,那么引擎可以立即使用该索引查找适当的值。

因此,如果您在数据库中进行了正确的优化,则查询可能会快很多。

相关问题