方案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;
- 需要查詢兩次,效率有所提升