從數據庫中創建結果集「可分頁」涉及哪些原則或實現?網頁上的分頁如何工作?
如何在不存儲內存的情況下翻頁一百萬條記錄?當有100頁時,什麼允許從5跳到第50頁的頁碼?
我正在尋找關於如何完成分頁的僞代碼種類的解釋。
從數據庫中創建結果集「可分頁」涉及哪些原則或實現?網頁上的分頁如何工作?
如何在不存儲內存的情況下翻頁一百萬條記錄?當有100頁時,什麼允許從5跳到第50頁的頁碼?
我正在尋找關於如何完成分頁的僞代碼種類的解釋。
基本前提是要記住以下幾點:
PAGE_SIZE
)var numPages = totalNumRecords/PAGE_SIZE;
Page = 1
Skip((page - 1)*PAGE_SIZE).Take(PAGE_SIZE);
那麼會發生什麼當您點擊結果數據源時,您將跳到您想要的記錄集並採取規定的數量。希望這是有道理的。
通常在下一個按鈕的URL中有一些內容可以修改呈現頁面的數據庫查詢。然後,呈現的頁面會在下一個URL中碰撞索引。
所以頁面一個可能是有限度20 SQL請求,第2頁也有LIMIT 20也抵消了20
所以基本上只有20個項目在該模型時加載,但該頁面還加載多少項目已被抵消如此肥胖並更改「下一頁」URL。
通常還會有一個函數,用於檢查相對於總項目數的位置,以便頁面知道它是否應顯示下一個鏈接。
啊。說得通。我想我的思維過程在哪裏,數據庫級別的「跳過並採取」有多高效,但我忽略了在問題中提及這一點。我想數據庫很聰明! – Zabba 2012-08-03 05:05:16
這仍然可以使用基於集合的方法在數據庫中輕鬆完成。所以它仍然是高效的。你必須設置你的查詢來接收一個跳過並根據我提供的算法獲得值,然後使用'SQL'來獲得結果 – 2012-08-03 05:07:06