(我希望這個問題不堅持己見,因爲我確實感到有一個正確和錯誤的答案,因此,如果它只是告訴我,我會刪除它)架構:分組客戶端,或從服務器拉多個分組數據?
我有一個MySQL數據庫中的數據一個包含幾個不同值的字段,但需要根據這些值進行分組(我知道這些值是什麼)。所以我的問題是:
是更好地從服務器上把所有的數據在一次(因爲將使用的所有數據),然後在通過JS在客戶端的數據到組進行排序基於你想要的領域。
或者向服務器發出多個小的請求,只獲取與單個字段匹配的數據,然後直接在程序中使用該數據會更好。
我認爲,主要的考慮是,以儘可能少的人花時間在服務器上,因爲客戶端的工作相比,服務器端的效率要高得多(更快,只有一個用戶)(互聯網連接是較慢,並且有更多的用戶)。
但是,更快,更好的解決方案:許多小型服務器請求或一個大型服務器請求。
所以例如:
Name: Group
Alpha: Top
Bravo: Top
Delta: Bottom
Charlie: Top
Echo: Bottom
Fox: Bottom
Gama: Bottom
Hotel: Top
India: Top
Juliet: Bottom
是更好地從服務器獲取的所有數據與一個查詢($sql = "Select * FROM table";
),然後用客戶端的功能,對數據進行分組(GroupBy(data,groups){};
)
或者做兩個數據庫查詢($sql = "Select * FROM database where group = $group";
),然後只使用已經分組的數據?
一個真實世界的例子就像亞馬遜,在那裏每天都會有用戶查詢的分配,但是他們可能正在尋找鞋子,所以你一次就得到鞋子的數據,價格和描述通過API請求,然後將它分組到服務器端並將其放入列中,或者先獲取所有大小,然後再着色,然後查看並將每個請求插入到列中?
如果數據很小,請不要過多關注它。如果您正確編制索引表,排序和分組相對便宜。 – Lukabot
嗨,謝謝你的回答,數據實際上現在會很大,但是用戶會很多... –
我會建議把它分成小部分,讓客戶請求時(不要給所有人數據在同一時間)。因爲它很容易緩存,對數據模式更改靈活,交付更快。 – Lukabot