MySQL的DESC问题

Q:

一个优化问题: 语句如下,其中id为自增id,follow_time上有索引而且计划走了索引。不加desc 查询速度很快,但是加上desc后速度极慢,这是为什么呢?该怎么优化?
select id,follow_time from push_product_to_user as p where p.follow_time <= 1433087999  and  p.follow_time >= 1430409600  ORDER BY p.id  desc   limit 0,10;


A:
1 ORDER BY p.id,可能会导致走id上的索引
2 follow_time上有索引而且计划走了索引,则表明查询是用此列上的索引进行的,没有利用id列上的索引,所以排序操作需要进行(但需要贴出执行计划,然后进行分析)
3 MySQL的DESC只是语法级别支持,优化器和存储引擎没有支持,内部处理时只是悄悄把DESC转为ASC,然后把处理结果倒序输出,所以DESC操作本身更耗时
4 但是,如果ASC很快而DESC很慢,需要再确认一下数据量有多少,然后再进一步确认

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值