哦,我觉得这个最好还是用数据库自己的功能吧,像这个row_number函数一般的大型数据库都有,比如sql server、oracle、db2都有的,mysql好像没有的。不可能说是,直接把几千万条记录直接放到缓存,那你的缓存肯定不够的。你要是像自己用程序实现,要实现估计只能先计算出结果集,然后把结果集放到应用端的缓存中,然后在排序编号,或者考虑分页,把结果分成很多份,要用那一份,获取数据后再排序。总之就是,结果集要尽量小,然后再排序。