首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用limit和order by优化select查询

使用limit和order by优化select查询
EN

Stack Overflow用户
提问于 2011-04-20 21:21:36
回答 3查看 2.9K关注 0票数 1

以下是我的问题:

select * from table order by timestamp desc limit 10

与之相比,这需要太多时间

select * from table limit 10

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

更新:我不能控制db服务器,所以不能索引列来提高性能。

EN

回答 3

Stack Overflow用户

发布于 2011-04-20 21:23:04

timestamp上创建索引。

票数 4
EN

Stack Overflow用户

发布于 2011-05-09 01:04:19

Quassnoi是正确的--您需要时间戳上的索引。

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

代码语言:javascript
复制
select *
from (select * from table order by id desc limit 1000) as table
order by timestamp desc limit 10;
票数 3
EN

Stack Overflow用户

发布于 2011-04-21 09:17:26

@尼山是对的。你几乎无能为力。如果不需要表中的每一列,则可以通过显式请求只需要所需的列来获得几毫秒的时间

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5731002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档