2013-02-04 41 views
2

我正在嘗試儘可能高效地進行分頁。 目前,我使用超過500萬條記錄的數據庫。Java MySQL分頁

我嘗試使用LIMIT pageSize,startIndex,像這樣: 選擇(a.id)從Article a ........ LIMIT 50,0 在這裏,pageSize是50,startIndex = 0。

但是,如果你不深入頁面,這是唯一的。解決的辦法是不使用的startIndex,但只有每頁:

選擇(a.id)從第一個........ ORDER BY a.id LIMIT 50

下一頁將是: SELECT(a.id)FROM Article a WHERE a.id> lasId ORDER BY a.id

但是沒有startIndex,它只能向前走,而且只能向後一步。

有沒有更好的方法在Java和Mysql中進行分頁?

+0

我不知道爲什麼你認爲LIMIT技術如果你不太深入這些網頁,這纔是好事。您可以一次繼續移動50條記錄,隨時更改偏移量(又名startIndex)。 – jfrank

回答

0

你總是可以做到這一點:

int pageNum = ?; 
int pageLength = 50; 

String query = String.format(
    "SELECT ... LIMIT %d, %d", 
    pageNum * pageLength, 
    pageLength 
);