select name from user where sex='女' order by last_login_time limit 10000000,10
上面的sql语句,不管这么建立索引,效率都会很低,会花费大量的时间去扫描需要废弃的数据
使用延迟关联,通过使用覆盖所有查询返回需要的主键。再给根据这些表的主键关联原来的表获取需要的行,这样可以减少MySQL扫描那些需要丢弃的行数。下列的实例就是高效的使用(sex,last_login_time)索引进行排序和分页
select 字段列...... from table inner join (
select 主键 from table
where x.sex='女' order by last_login_time limit 1000000,10
) as x using(主键);