繁体   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