使用限制和顺序优化选择查询

时间:2011-04-20 13:21:36

标签: postgresql query-optimization

以下是我的查询:

select * from table order by timestamp desc limit 10

相比,这需要花费太多时间

select * from table limit 10

如何优化第一个查询以获得接近第二个查询的性能。

更新:我无法控制数据库服务器,因此无法索引列以获得性能。

3 个答案:

答案 0 :(得分:4)

timestamp上创建索引。

答案 1 :(得分:3)

Quassnoi是正确的 - 你需要一个时间戳索引。

也就是说,如果您的时间戳字段合理地映射了您的主键(例如date_created或invoice_date字段),您可以尝试以下解决方法:

select *
from (select * from table order by id desc limit 1000) as table
order by timestamp desc limit 10;

答案 2 :(得分:0)

@Nishan是对的。你几乎无能为力。如果您不需要表中的每一列,您可以通过明确询问所需的列来获得几毫秒