要在列表上实现分页,我需要做两个查询:
有什么方法可以避免这种情况吗?是否有存储此元数据的元数据?
函数resultSet.getRow()检索列表的数组索引,然后我需要进行查询,其结果是所有行。我得到一个subSet之后,但这很昂贵。
我想发送一个带有限制和偏移的唯一查询,并检索所选数据和数据总数。
这可能吗?
提前致谢, 涓
答案 0 :(得分:0)
我看到了一些有关这方面的事情,然后又出现了新的疑虑。
当查询带有限制时,我们可以在"上选择"添加SQL_CALC_FOUND_ROWS *部分如下:
" SELECT SQL_CALC_FOUND_ROWS * FROM ... LIMIT 0,10"
之后,我查询以下内容:
" SELECT FOUND_ROWS()"
我理解第一个查询存储计数在内部var中,其值将在第二个查询时返回。第二个查询不是"选择计数(*)......"查询所以" SELECT FOUND_ROWS()"查询应该很便宜。
我是对的吗?
我做的一些测试显示如下:
- 拳头选择计数(*),第二次选择限制 -
测试1:194毫秒
out:{" total":94607," list":[" 2 - 1397199600000"," 2 - 1397286000000",& #34; 13 - 1398150000000"," 13 - 1398236400000"," 13 - 1398322800000"," 13 - 1398409200000"," 13 - 1398495600000& #34;," 14 - 1398150000000"," 14 - 1398236400000"," 14 - 1398322800000"]}
- 新方式 -
测试2:555毫秒 out:{" total":94607," list":[" 2 - 1397199600000"," 2 - 1397286000000"," 13 - 1398150000000"," 13 - 1398236400000"," 13 - 1398322800000"," 13 - 1398409200000"," 13 - 1398495600000" ," 14 - 1398150000000"," 14 - 1398236400000"," 14 - 1398322800000"]}
为什么测试不显示预期结果? 我的假设是错的?
谢谢,问候
答案 1 :(得分:0)