有一个用户信息查询服务。每个用户的详细信息来自5个Mysql表。需要排序,分页和过滤。单个SQL易于实现。 像这样:
SELECT A.a,B.b,C.c,D.d,E.e
FROM A
LEFT JOIN B ON A.biz_id=B.biz_id
LEFT JOIN C ON A.biz_id=C.biz_id
LEFT JOIN D ON A.biz_id=D.biz_id
LEFT JOIN E ON A.biz_id=E.biz_id
WHERE A.a = $a
AND B.b = $b
AND C.c = $c
AND D.d = $d
AND E.e = $e
ORDER BY E.create_time,
D.status
LIMIT 0,10
但是DBA规定在线查询SQL的 JOIN不得超过3个。因此,我必须从数据库中获取所有数据,然后在应用程序中进行排序,分页和筛选,这对于太多的记录是不可能的。
使用大数据进行排序,分页和过滤是一个常见问题。
有没有切实可行的解决方案?