簡體   English   中英

將數據存儲在 arrays 而不是數據庫中

[英]Storing data in arrays instead of database

我知道它們是如此不同。 arrays 和數據庫。 但是在我的情況下(表現如此重要)我想知道; 如果我只使用 arrays 來存儲這樣的數據,是否會給我帶來問題:

  • 播放器對象,它們有 15 個原始類型的屬性(int、string vb。)

  • 房間物品; 它們有 10 個屬性,一個數組屬性 (players=[]) 由 15 個 Player 對象組成。

  • 還有我的陣列; 它有 100-150 個房間對象(最多 150 個)。

如果我將此數組存儲在 RAM 上,而不是數據庫上; 這是個壞主意嗎?

這種情況是否有最佳解決方案?

例如;

我會經常需要一些關於球員房間的東西; 我會像這樣從數組中獲取它;

var roomsProperty = array.find(x=>x.roomId === myPlayer.roomId).property;

您的問題的答案是“可能”。

使用數組的缺點是當您搜索某些內容時,您正在執行順序搜索。 這可能需要一些時間,具體取決於您的數據結構。 如果您沒有任何東西可以輕松識別您的對象,那可能是您最好的解決方案。

但是,你說你有一個房間號。 如果您使用字典類型的結構,您可以使用房間 ID 作為鍵,並使用包含房間所有信息的結構作為值。 如果你這樣做了,找到你想要的房間會非常快。

正如評論中提到的,測試哪個對您的數據更快,但也要考慮可擴展性。 如果你想增加你的結構的大小怎么辦?

做一個簡單的計算:
(150 * (10 + (15 * 15))) * (每個屬性約 128 字節) = ~4.3 MB RAM
將其作為緩存存儲庫放在 RAM 上並不是一個壞主意,但要小心數據更改。
需要提到的是,如果這些數據增長,在數組中搜索可能會變得比數據庫查詢執行效率低。

對於性能關鍵代碼,請考慮:

  • WebAssembly。
  • 鍵入 arrays。

很驚訝沒有人提到他們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM