我正在开发一个从网络接收数据包并将它们存储到数据库中的应用程序。在一个部分中,我将dns记录保存到db,格式为:
DNS记录的速度,大约是每秒10-100条记录。由于它是实时的,我没有足够的时间通过数据库中的字符串搜索来检查重复项。我想到了一个很好的方法来获得每个给定唯一字符串的唯一短整数(比方说,64位)。所以我的搜索,从字符串搜索,变成数字搜索,让我更快地检查重复。任何关于我所说的实现或更好的方法的想法都是值得赞赏的。 C#中的样品是优选的。但欢迎任何好主意。
答案 0 :(得分:0)
我会通过this阅读,讨论将字符串散列为整数,并且由于地址很长(字母方面),我会使用一些模数函数来保持整数限制。
将使用重复的哈希表检查结果。
如果需要,可以对前20个字母进行此操作,然后对嵌套哈希表进行下一个20,依此类推。
答案 1 :(得分:0)
确保正确设置表中的表索引和主键。
每隔几秒钟异步加载表格内容,并用它填充通用dictionary<long,string>
。
在字典上执行搜索,因为它针对搜索进行了优化。如果您需要更快,请使用哈希表。
将事务中新添加的条目异步刷新到数据库中。
P.S。您的场景是模糊的,以创建一个体面的代码示例。