以下是我的问题:
select * from table order by timestamp desc limit 10
与之相比,这需要太多时间
select * from table limit 10
如何优化第一个查询以获得接近第二个查询的性能。
更新:我不能控制db服务器,所以不能索引列来提高性能。
发布于 2011-04-20 21:23:04
在timestamp上创建索引。
发布于 2011-05-09 01:04:19
Quassnoi是正确的--您需要时间戳上的索引。
也就是说,如果您的时间戳字段合理地映射了您的主键(例如,date_created或invoice_date字段),您可以尝试此解决方法:
select *
from (select * from table order by id desc limit 1000) as table
order by timestamp desc limit 10;发布于 2011-04-21 09:17:26
@尼山是对的。你几乎无能为力。如果不需要表中的每一列,则可以通过显式请求只需要所需的列来获得几毫秒的时间
https://stackoverflow.com/questions/5731002
复制相似问题