我有一個flex web應用程序,它從數據庫中檢索一些名稱&地址。項目工作正常,但我想讓它更快。不用爲每個名稱請求調用數據庫,我可以將所有名稱預加載到數組中&在用戶發出請求時過濾數組。在我走下這條路線之前,雖然我想檢查是否可以在數組中使用50,000或100萬個元素的應用程序?什麼是它減慢應用程序的限制? (我預計它會在我的應用中發生很多事情,但爲此我們假設應用只包含這個巨大的數組)。數組對於數組來說有多少數據太多?
0
A
回答
1
是的,如果你願意的話,你可能會在數組中填充幾百萬項,並且Flash播放器不會對你大吼。但你真的想要嗎?
如果應用程序在能夠工作之前必須在本地下載整個數據庫,是否需要更長時間才能啓動?如果下載這麼多數據所需的額外時間不是很重要,那麼一些數據庫查詢是否真的值得優化?
如果你有一個很好的用例來做到這一點,你將不得不注意你使用這些數據結構的方式。循環訪問數組以找到一個項目會變得有點慢,所以您需要在本地創建索引,這很可能是通過使用一些哈希結構。您允許搜索查詢的靈活性越高,索引問題就越有趣。
2
通過大型數組搜索可能會比必要的慢,特別是如果您談論的是100萬條記錄。
你可以將它分成幾個仍然很大但較小的數組嗎?如果您始終使用帳號進行搜索,請根據第一位數字或兩位數字將其分開。
要直接回答你的問題,純粹的AS3處理一個50,000元素的數組應該沒問題。一旦你超過250,000,我認爲你需要分解它。
顯示許多UI元素雖然不同。如果嘗試將圖表綁定到具有10,000個元素的dataProvider,則太多了。列表或數據網格相同。
但是對於純粹的模型數據,不受ui約束,我建議高達250,000根據我的經驗。
2
如果您加載大量數據(不知道你使用列表雖然),你可以看看詹姆斯病房後如何使用AsyncListView與分頁來獲取數據的chuncks作爲其必要的。要儘快嘗試和實施這樣的事情。他的可運行示例使用100,000行,分頁爲100(與HttpService/AMF類型調用一起工作): http://www.jamesward.com/2010/10/11/data-paging-in-flex-4/
相關問題
- 1. 有多少「行數據」對於html表「太多」了
- 2. 對於1 GB數據庫,多少個表太多?
- 3. 多少個數據庫實例太多與ezcomponents數據庫組件?
- 4. 多少會話數據太多?
- 5. 數據庫中有多少個表/ sprocs /函數太多?
- 6. 有多少構造函數太多?
- 7. IndexError:數組索引太多
- 8. 計數在數組中有多少數據和增量javascript
- 9. 如何計算多維數組中有多少個數組具有相同名稱的多維數組?
- 10. 數據庫對許多人來說,對於創作者
- 11. 數組太多的指數使用np.where
- 12. 矢量:數組太多指數
- 13. 減少多維數組
- 14. 減少多維數組
- 15. 組織或分組來自多維數組的數據
- 16. 數組鍵存在於多維數組
- 17. PHP - 數組中有多少個成員?
- 18. 根據數量有多少,更改數組的大小
- 19. 多維數組與對象數組
- 20. PHP多維數組 - 數據
- 21. 有多少個數據庫表列太多?
- 22. 多年後,Int16的值對於Int16來說太大或太小
- 23. 對於JavaScript文件來說,「太大」有多大?
- 24. 我有一個數組多維數組
- 25. 從CSV中輸出所有多維數組,數組數據 - PHP
- 26. php類和數組至少對我來說是瘋狂的
- 27. 具有數據對象的多維數組有什麼特徵?
- 28. 對於數組下標 - 多維數組無效類型'int [int]'
- 29. 如何基於數組swift對多個數組進行排序?
- 30. 來自多層級數組中的多個表的MySQL數據
「因此您需要在本地創建索引」...您是什麼意思? –
我的意思是創建使用相關索引作爲鍵並指向數組區域的對象結構。例如,假設您的數組已被適當排序,您可以讓對象具有一個字母鍵,每個鍵指向您的大數組中的第一個索引,該索引具有以該字母開頭的特定字段。通過使用該對象並從與給定字母關聯的位置開始循環遍歷大數組,您將有一種快速查找以該字母開頭的字段的所有記錄的有效方法。你可以想象索引使用整個名稱作爲鍵,等 – Metal
聽起來很有趣..我可以去哪裏找到一個例子? –