關於分頁的從新思考

2021-06-15 21:34:07 字數 1222 閱讀 9774

哭啊,剛才點錯了,本來就寫好了,強烈建議增加自動儲存功能!!!!!!!!!!!!!!

封裝類的初始化程式如:

public

synchronized

void

init(string sql1, string sql2, 

intps, string cp) 

...

sql可能是這樣:

select count(*) from table";

select * from table";

在jsp頁面**如下:

rownum

=pagelist.getcurrentpagesize();

intfirstrownum

=pagelist.getfirstrownum();

try...

catch

(exception e)

... finally

...

這樣的做法是這樣的:將所有記錄的資訊都儲存在resultset中,然後在頁面上通過迴圈控制某條記錄是否顯示在頁面上。這樣的弊端就是將所有記錄的資訊都查詢到記憶體中,如果記錄集很大的話,勢必影響效能。

最近看了別人bbs系統中對於分頁的實現,也是jsp版本的,原理如下:

int pagesize = 50;

int currentpage;

int startnum = (pagesize-1)*currentpage+1;

int endnum = pagesize*currentpage;

public string getlist()

...rs.close();

rs = null;

}catch(exception e)...finally...catch(exception ex)...{} }

s = sb.substring(0,sb.length()-1);

return s; }

這樣做的道理是,將當前也要顯示的記錄的id號先查詢出來,然後在jsp頁面中的sql可以這樣寫:

string strsql ="

select * from table where id in (上面函式得到的s) order by id asc";

這樣保證了查詢的結果集都是當前頁面的乙個結果集,因為每頁所顯示的記錄數都很有限,所以即使資料量很大也是沒有關係。

因為對於快取的處理還沒有什麼概念,所以不在本文的思考範圍內。

關於分頁的思考

最近拜讀了yahoo的以及mysql performance blog的,分頁優化很牛x.yahoo的那篇文章主要是講在分頁中結合索引的使用優化order by,limit以及本身的select操作,主要減少limit m,n中m的值,甚至沒有m來減少分頁操作掃瞄的行數.並對分頁的展示進行了討論 1...

關於Mysql外來鍵從新學習

參考 說實話,這是乙個抄剩飯的文件。因為考試。在實際開發中,可能用外來鍵的情況不多,至少我設計我自己的專案是不會用外來鍵。用了後,資料不自由了。當然,如果表設計後,給資料表加上外來鍵,可能是一種不錯的選擇,但,自己的專案還是不會使用外來鍵來約束自己的資料。至少我在 中,做到部分的資料約束。innod...

關於博弈的思考

博弈,決策,永恆的主題 在博弈的過程中不要考慮是否公平,而是要考慮是否對你自己有利。這句話很值得思考。人生無時無刻不在博弈,無論是在微觀上,兩個人之間的談話 還是在巨集觀上每次人生抉擇的過程,博弈,總是在乙個恰當的視點上讓人設身處地的感受到。在博弈的過程中,公平與否,很多人都在抱怨 有的時候是與自己...