Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查一个实现的存在性,例如;“数据库中的字符串搜索方法”;_C#_Database_Algorithm_Optimization - Fatal编程技术网

C# 检查一个实现的存在性,例如;“数据库中的字符串搜索方法”;

C# 检查一个实现的存在性,例如;“数据库中的字符串搜索方法”;,c#,database,algorithm,optimization,C#,Database,Algorithm,Optimization,我正在开发一个从网络接收数据包并将其存储到数据库的应用程序。在一部分中,我将dns记录保存到db,格式如下: IP地址(无符号32位整数) DNS记录(无限字符串) DNS记录的速率约为每秒10-100条记录。由于它是实时的,所以我没有足够的时间在数据库中通过字符串搜索来检查重复项。我在想一个好方法,为每个给定的唯一字符串获得一个唯一的短整数(比如说64位)。所以我的搜索,从字符串搜索,变成了数字搜索,让我更快地检查重复。任何关于实现我所说内容或更好方法的想法都将受到赞赏。最好使用C#的样品。但

我正在开发一个从网络接收数据包并将其存储到数据库的应用程序。在一部分中,我将dns记录保存到db,格式如下:

  • IP地址(无符号32位整数)
  • DNS记录(无限字符串)
  • DNS记录的速率约为每秒10-100条记录。由于它是实时的,所以我没有足够的时间在数据库中通过字符串搜索来检查重复项。我在想一个好方法,为每个给定的唯一字符串获得一个唯一的短整数(比如说64位)。所以我的搜索,从字符串搜索,变成了数字搜索,让我更快地检查重复。任何关于实现我所说内容或更好方法的想法都将受到赞赏。最好使用C#的样品。但是任何好的想法都是受欢迎的。

    我会通读一遍,讨论如何将字符串散列成整数,由于地址很长(字母),我会使用一些模函数将其保持在整数范围内

    将使用哈希表检查结果是否存在重复项

    这可以在前20个字母中完成,如果需要的话,接下来的20个字母可以在嵌套哈希表中完成,依此类推。

    我会通读一遍,讨论如何将字符串哈希成整数,由于地址相当长(字母),我会使用一些模函数将其保持在整数范围内

    将使用哈希表检查结果是否存在重复项

    可以对前20个字母执行此操作,然后在需要时对嵌套哈希表执行下20个字母,依此类推。

    • 确保在表中正确设置了表索引和主键

    • 每隔几秒钟异步加载一次表内容,并用它填充一个通用的
      字典

    • 对字典执行搜索,因为它已针对搜索进行了优化。如果您需要更快,请使用哈希表

    • 将事务中新添加的条目异步刷新到数据库中

    另外,您的场景非常模糊,无法创建一个像样的代码示例

    • 确保在表中正确设置了表索引和主键

    • 每隔几秒钟异步加载一次表内容,并用它填充一个通用的
      字典

    • 对字典执行搜索,因为它已针对搜索进行了优化。如果您需要更快,请使用哈希表

    • 将事务中新添加的条目异步刷新到数据库中


    另外,您的场景非常模糊,无法创建一个像样的代码示例

    不将DNS记录存储为文本怎么样?您可以解析记录并避免大部分字符串搜索。但是,如果不知道您实际想做什么,就很难提出任何具体的建议-我不认为“插入时检查重复项”与软实时是如何不兼容的,特别是与DNS记录之类的东西。你到底想做什么?不将DNS记录存储为文本怎么样?您可以解析记录并避免大部分字符串搜索。但是,如果不知道您实际想做什么,就很难提出任何具体的建议-我不认为“插入时检查重复项”与软实时是如何不兼容的,特别是与DNS记录之类的东西。你到底想做什么?