我正在處理用戶提供參數的Web應用程序,這些應用程序用於生成高達2000萬行數據庫中前1000個項目的列表。我一次需要所有1000個項目,而且我需要從用戶的角度來看,這個排名或多或少地立即發生。快速處理大量數據
目前,我正在使用一個具有用戶定義函數的MySQL對數據進行評分和排名,然後PHP從那裏獲取它。在1M行的數據庫上測試,這需要大約8秒鐘,但我需要大約2秒的性能,即使對於高達20M行的數據庫也是如此。優選地,該數量應該更低,以便可以保證50個併發用戶的體面吞吐量。
對於任何可以使用任何能夠儘可能有效地處理這些數據的軟件,無論是否是MySQL,我都樂於接受任何流程。以下是過程的功能和限制:
- 與評分過程相關的每行數據大約爲每個項目50個字節。
- 插入和更新數據庫是微不足道的。
- 每個分數都是獨立於其他分數的,因此分數可以並行計算。
- 由於大量的參數和參數值,分數不能預先計算。
- 該方法應該可以很好地適用於多個併發用戶
- 就服務器數量而言,需要的計算資源越少越好。
由於
你正在處理什麼樣的數據(整數,字符串等?)?你的評分算法是什麼?你正在進行任何加入? –