排序sql优化

一:mysql中组合索引在排序中的优化

排序时应按照组合索引中各列的顺序进行排序,即使索引中只有一个列是要排序的,否则排序性能会比较差。

CREATE INDEX IDX_NAME_TEL ON USER (deptid, position, createtime );

SELECT username, tel FROM USER WHERE deptid = 10 AND position = '经理' ORDER BY deptid, position,createtime DESC;


实际上只是查询出符合deptid= 1 and position = '经理' 条件的记录并按createtime降序排序,但写成ORDER BY createtime DESC 性能较差。

如果设置了Mysql自增主键,可以优化为:ORDER BY id DESC 该排序性能好些。

二:没有单独建索引排序

SELECT username, tel FROM USER WHERE deptid = 10 AND position = '经理' ORDER BY createtime DESC;


该排序按照记录创建时间createtime 排序性能差些,如果设置了Mysql自增主键,可以优化为:ORDER BY id DESC 该排序性能好些。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值