我有一个方法是分页获取用户,方法如下:
PageHelper.startPage(pageNumber, pageSize);
List<UserPageResponse> userPageResponseList = userMapper.findBy(some condition);
return new PageInfo<>(userPageResponseList);
userMapper.findBy
对应的 SQL 语句如下:
SELECT u.id,
u.name,
total_consumption_times, # 复杂的 count
total_consumption_amount, # 复杂的 sum
u.last_consumption_time
FROM user u
where ...
order by u.create_time desc;
我期望它产生的 count 语句是:
SELECT count(0)
FROM (SELECT 0
FROM user u
where ...) table_count;
但实际它产生的 count 语句如下,导致执行时间很长。
SELECT count(0)
FROM (SELECT u.id,
u.name,
total_consumption_times, # 复杂的 count
total_consumption_amount, # 复杂的 sum
u.last_consumption_time
FROM user u
where ...) table_count;
怎么解决这个问题?🤕
一个相关的 issue:1.3.1 版本 count 问题 · Issue #121 · pagehelper/pagehelper-spring-boot
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.