日期:2014-05-18  浏览次数:20708 次

求教:数据查询分页的解决方案..
我想问一下,假设一条查询,返回结果是10万条数据。如果一次过在页面呈现给用户,不但页面数据量大,用户看起来也乱。如果采用分页的话,一般是如何解决的,我想到有两个:
1、查询触发之后,所有结果已经被放到服务端的内存里,用户点击下一页的时候取的是服务端内存中的结果的下一批结果集。
2、查询出发后,第一页的结果被调出来,用户点击下一页的时候,再一次触发查询第二页的结果。。
我想问问,一般是采用哪一种做法比较好?

------解决方案--------------------
10万行,恐怖,应该由你的查询语句进行分页,而不应该全部取出来再分页啊!
------解决方案--------------------
他的意思就是说你选第二种方法啦,第一种太占内存了
------解决方案--------------------
數據太多的話,肯定要用第二種方法了,
可以先查詢出總記錄數(這個不會花多少時間),計算出總頁數
然后僅查詢第一條數據顯示出來,當用戶單擊下一頁,則僅查詢下一頁數據顯示出來
例如:
"select bbsitems1.item_id item_id1,bbsitems1.author replyer "
+ "from bbsitems "
+ "order by item_id desc limit "
+ (page - 1)
* pagesize
+ ", " + pagesize;
其中:page為要查詢的頁,pagesize為第頁顯示的行數
------解决方案--------------------
如果是JSP的话给个网址你吧http://hi.baidu.com/kelsen/blog/item/efce894569f81e27cffca339.html ,里面的pageableresultset,我已经实现了,不想写的话和我要QQ:275862828
------解决方案--------------------
当然是第二种方安好啊,icefireleaf(一叶飘零)已经给出了mysql方法,
当然要看甚么数据库了,数据库不一样语句会有点差别
------解决方案--------------------
关注
------解决方案--------------------
icefireleaf(一叶飘零) 正解