java中的resultset机制是不是将所有数据集取到内存中 5
最近做了一些东分页的东西,回过头来想想发现有些东西不明白,具体情况是这样的:1、我使用jdbc连接数据库,使用result返回数据集,数据返回后我使用last和getRo...
最近做了一些东分页的东西,回过头来想想发现有些东西不明白,具体情况是这样的:
1、我使用jdbc连接数据库,使用result返回数据集,数据返回后我使用last和getRow获取当前查出来的记录总数。
2、然后根据所传的页码、每页返回几条记录,进行过滤resultset中的值,找到符合标准的记录,最后返回页面实现分页。
问题:
1、我想了想这样做的话一开始效率会比较高,但是到查询最后会变的越来越慢。假设我要是有10w条数据每次去10条分一页,当我要返回最后一页时会过滤到前面99990条记录才能查到,这样对效率会不会影响很大啊?
2、resultset是将数据集取到内存中去还是查到哪就到数据库中去取哪些值啊?
3、还有今天有人跟我说我使用last话是从头开始每条向后移动,这样的话我要是判断一共有多少条记录我就想当与要遍历以下整个表所查出来的数据,这样对效率有影响吗?
4、我想问有没有好的分页方法,可以适用所有数据库(我指的是那些没有查询从第几条到第几条记录语句的数据库,不适用特殊的数据库分页语句,如:sqlServer)
5、Hibernate的查询方式,返回的数据集是什么情况,是将所有数据取出存放内存还是别的?
呵呵,希望有高手可以解答,谢谢。。。。。。。 展开
1、我使用jdbc连接数据库,使用result返回数据集,数据返回后我使用last和getRow获取当前查出来的记录总数。
2、然后根据所传的页码、每页返回几条记录,进行过滤resultset中的值,找到符合标准的记录,最后返回页面实现分页。
问题:
1、我想了想这样做的话一开始效率会比较高,但是到查询最后会变的越来越慢。假设我要是有10w条数据每次去10条分一页,当我要返回最后一页时会过滤到前面99990条记录才能查到,这样对效率会不会影响很大啊?
2、resultset是将数据集取到内存中去还是查到哪就到数据库中去取哪些值啊?
3、还有今天有人跟我说我使用last话是从头开始每条向后移动,这样的话我要是判断一共有多少条记录我就想当与要遍历以下整个表所查出来的数据,这样对效率有影响吗?
4、我想问有没有好的分页方法,可以适用所有数据库(我指的是那些没有查询从第几条到第几条记录语句的数据库,不适用特殊的数据库分页语句,如:sqlServer)
5、Hibernate的查询方式,返回的数据集是什么情况,是将所有数据取出存放内存还是别的?
呵呵,希望有高手可以解答,谢谢。。。。。。。 展开
1个回答
2011-04-27
展开全部
oracle 的rownum
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询