以下是我的查询:
select * from table order by timestamp desc limit 10
select * from table limit 10
如何优化第一个查询以获得接近第二个查询的性能。
更新:我无法控制数据库服务器,因此无法索引列以获得性能。
答案 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是对的。你几乎无能为力。如果您不需要表中的每一列,您可以通过明确询问所需的列来获得几毫秒