gpt4 book ai didi

c# - 如何使用复合键索引集合

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:13 25 4
gpt4 key购买 nike

我有这门课

public class Item
{
public int UniqueKey;
public int Key1;
public int Key2;
public int Key3;
public int Key4;
public string Value;
}

和集合IEnumerable<Item>

我想通过 Key1Key2 或组合项(Key1 和 Key4)为该集合的项目创建索引。藏品数量约为10 000件或更多。主要目标是性能。多个调用者可以有多个读取/一个写入访问权限。返回的集合应该受到保护(防止外部修改)。有人可以解释任何解决方案、模式、我必须使用哪些集合类来实现。

由于某些原因(性能等),我拒绝使用数据库表索引的变体。

最佳答案

您可以使用两种映射:一种用于存储,另一种作为主键的查找表。由于所有更新都使用应该固定的主键,因此您可以使用锁剥离来允许并发写入。在这种形式下,编写者必须获得一个锁(primaryKey mod # locks),这样更新/删除就不会争夺条目。当然,如果支持字典是并发的,则读取不需要锁定。

你可以看到一个 Java version这个想法隐藏在缓存外观后面以提供一个很好的 API。

关于c# - 如何使用复合键索引集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3586016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com