单表分类取最值的SQL如何实现效率最高?


现有实际需求如下:表TBL(id,userid,logintime,data),id为UUID,userid为用户名,logintime为登录时间,data为某些数据,请写SQL语句返回每个有记录的用户在最后一次登录所产生的userid,data结果集。

这个问题其实是一个广谱性的问题,在很多场景下会遇到。那么对于这类单表分类(userid相同的视为一类)取最值(或者是最大两个或三个值)的问题,如何设计SQL才能使效率最高?

sql db 数据库 数据库性能优化

todes 10 years, 1 month ago

取值一定会用到order by 的,那么在order by 的字段(logintime)最后登录时间需要建一个索引,这样可以提高排序效率。

燃烧吧火鸟 answered 10 years, 1 month ago

Your Answer