:我不能控制数据库服务器,所以不能索引列来获得性能
以下是我的查询:
select * from table order by timestamp desc limit 10
与
相比,这花费了太多的时间 select * from table limit 10
我如何优化第一个查询以接近第二个查询的性能。
在timestamp
上创建索引
Quassnoi是正确的——你需要一个时间戳的索引。
也就是说,如果您的时间戳字段合理地映射主键(例如date_created或invoice_date字段),您可以尝试以下解决方案:select *
from (select * from table order by id desc limit 1000) as table
order by timestamp desc limit 10;
@Nishan是对的。你无能为力。如果您不需要表中的每个列,则可以通过显式地只请求所需的列来获得几毫秒的时间