方案1:使用limit 1
- select * from a where create_time<="2017-03-29 19:30:36" order by create_time desc limit 1;
- limit是先将表遍历一遍,取出全部结果,然后再取第一条,在查询中占用了不必要的时间和空间,效率最差。
方案2:使用group by
- select * from ( select * from a where create_time<="2017-03-29 19:30:36" order by create_time desc) bb group by user_id;
- 需要查询两次,效率有所提升