Mysql
一: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 该排序性能好些。