我正在使用以下查询来获取表的最后一行。此代码似乎是应针对此类查询执行的操作。所以我想知道为什么表格要花这么长时间才能输出结果。我正在寻找可能导致长时间查询的潜在原因。例如,也许该行不在顶部(我使用某些条件),并且如果查询是从表的顶部到底部读取的,则需要花费时间才能到达该行?还是查询需要先读取所有表才能得出结论,哪一行是正确的(我认为情况并非如此)?
感谢您对“排序算法”如何工作的任何贡献。
编码:
SELECT created_at , currency, balance
from YYY
where id in (ZZZ) and currency = 'XXX'
order by created_at desc
limit 1
这是您的查询:
select created_at, currency, balance
from YYY
where id in (ZZZ) and currency = 'XXX'
order by created_at desc
limit 1;
如果您的查询没有索引,则引擎需要扫描整个表,选择与该where
子句匹配的行,对这些行进行排序,然后选择具有maximise的行created_at
。
如果您在上有一个索引YYY(currency, id, created_at desc)
,则引擎可以立即使用该索引查找适当的值。
因此,如果您在数据库中进行了正确的优化,则查询可能会快得多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句