我想從數據庫中獲取數據,以便在頁面上顯示。表中有大量的行,所以我使用頁面來避免永久滾動。以最快的方式過濾,排序和分頁方法
我有搜索單詞(沒有特定列)的功能,按任意列排序,並且顯然改變頁面大小和我在哪個頁面上。
我可以,理論上,只需要詢問數據庫中的所有內容(SELECT * FROM myTable),將其發送到我的html視圖,並完整處理javascript中的數據。問題是,有太多的數據,使用我的結構(頁面控制器調用我的主邏輯,它調用一個調用數據庫的webservice)的速度非常慢,有時會等待最多20秒的頁面原始負載。加載後,JavaScript通常很快。
或者,我可以使用Linq在控制器中完成大部分工作。我也可以在web服務(這是我的)中工作,仍然在Linq。或者,我可以直接使用WHERE,ORDER BY,COUNT和一堆動態SQL請求,這樣我就可以立即從數據庫中獲得我想要的東西。但是,每當參數發生變化時,任何這些都會迫使我刷新頁面。
所以我想知道性能。例如,這之間實現更快:
var listObjects = ExecuteSQL("SELECT * FROM myTable");
return listObjects.Where(x => x.field == word).OrderBy(x => x.field);
和
var listObjects = ExecuteSQL("SELECT * FROM myTable WHERE field = :param1 ORDER BY field", word);
return listObjects;
而具體在什麼會利用我所提到的是好還是壞的不同方法的情況?