[英]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 上并不是一个坏主意,但要小心数据更改。
需要提到的是,如果这些数据增长,在数组中搜索可能会变得比数据库查询执行效率低。
对于性能关键代码,请考虑:
很惊讶没有人提到他们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.