2010-01-21 47 views
1

我得到了一個MySql數據庫,我做了一些潛在的大型查詢。我從查詢中獲得的數據存儲在PHP中的二維數組中,然後生成一個供用戶查看的HTML表格。目前我正試圖實現一種方式來爲用戶以各種方式對數據進行排序。當然,我可以再次調用查詢並告訴它以不同的方式排序,但我認爲這可能不是一個非常有效的方法。我的想法是以某種方式緩存數據,然後每次以新的方式對數據進行排序以獲得結果時調用JavaScript。不幸的是,我不知道該怎麼做... :)從SQL數據庫緩存數據進行排序

所以,我的問題是:
- 這樣做是一個好主意嗎?
- 我如何實現此功能?

回答

1

有一些JavaScript庫可用於您可以用來排除客戶端中的表格,甚至無需調用服務器。它很容易在客戶端使用JavaScript自行分類。 Here是供您參考的一種

1

您預計這個比例有多大?一次在HTML表格中顯示多少數據?如果您希望表中的行數達到您必須分頁的頁數以上,那麼通過重新調用數據庫中的數據來實現您的排序會更有效率,因此您永遠不必讀取整個數據集。

如果數據集中有10,000行,但一次只有30個屏幕,則在客戶端存儲和排序這些行的開銷不值得。

如果你知道你永遠不會有少數幾個「頁面」(比如說,每頁少於5 *的數量),那麼獲取一次並在客戶端操縱它就沒什麼大不了的。

如果你知道你的工作量將是95%小,5%大,那麼混合可能是爲了:每次獲取150條記錄,如果你少於150條,並且保持在客戶端是安全的。如果不止於此,假定它可能非常大,並以塊的形式獲取數據。如果數據集大小的漸變斜率更大,則只要排序順序不變,就可以緩存區塊並緩慢構建數據集。