gpt4 book ai didi

c# - .NET 或 MySql 或其他解决方案,每天进行数百万次查找(以停止重复)

转载 作者:行者123 更新时间:2023-11-30 23:36:03 25 4
gpt4 key购买 nike

我有一个用 .NET 编写的客户端/服务器架构,其中有数百个客户端向一台服务器发送数据。每个项目都有一个 ID,不同的客户端可以多次发送相同的 ID。

id 是长整数,服务器需要知道它是否已经收到具有相同 id 的东西。服务器每天将收到大约 10,000,000 个 ID,其中约有 1,000,000 个重复 ID。每次它收到一个 id 时,它都需要进行某种查找以查看它是否已经被处理过。几天后获得重复 ID 的可能性极小。

我目前的解决方案是:

  • 在带有后台线程的 id 内存字典中删除在字典中超过 3 天后的任何项目。

  • MySql 数据库,带有一个用于 ID 的索引列和一个用于插入日期的列。

我预见的问题是对 MySql 数据库的查询速度是多少,因为我每天必须执行大约 10,000,000 次查询。我不会为这个特定问题(典型的开发系统)使用花哨的硬件,也不想对其征税 100%。内存解决方案的问题是编写后台工作程序(并发)会很麻烦,并且在不太可能但可能发生的崩溃中一切都会丢失。

最佳答案

不确定 MySQL 部分 - 通常它可以很好地适应您使用的硬件......

对于字典部分,只需使用 ConcurrentDictionary - 这是线程安全的并且非常快,因为大多数操作都是无锁实现的。

关于c# - .NET 或 MySql 或其他解决方案,每天进行数百万次查找(以停止重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7278146/

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