多线程数据库模糊匹配

时间:2019-05-22 09:34:15

标签: c# python database multithreading optimization

问题:我有一个庞大的用户数据库,并且有很多重复项(2500万个条目)。我需要找到这些重复项并将它们写入新的查找表(我正在使用SQL)

例如:

下面是列出的方式: 名称姓氏注册 id

用户1: 约翰_多伊_ 1987/02/13 _ 12

User2: 约翰_多伊_ 1987/02/13 _32

因此,在我的查询表中,我需要将这两个保存为同一用户,并位于引用其两个ID的中央ID下。

如果dob相同,并且名称和姓氏通过模糊匹配成功,则假定它是同一用户。

我建议的解决方案: 因为dob必须相同才能假定它们是同一个人,所以我从主数据库中创建了较小的索引,并按如下方式进行分割:我从最低的年份和第一个月开始,并将其分配给第一个与之匹配的线程,然后仅写入将是我的查找表的.csv文件。因此,接下来的每个月我都会提供下一个线程,直到他们都忙。然后,完成后就继续前进。

我的问题:

  1. 鉴于情况和我的解决方案,此解决方案中是否存在严重的瓶颈?

  2. 可以通过某种方式对其进行优化以使其更好地工作吗?例如。而不是建立一个新索引,我最好搜索一个存储数据的数组吗?

  3. 哪种编程语言最适合?我当时在考虑使用Python,但出于某种原因,我记得/感到这不是最快的解决方案?我也在考虑C#?

  4. 除了多线程之外,还有其他可以帮助优化这一点的东西吗?

  5. 对此还有其他建议吗?我忽略或没想到的东西?只是为此的最佳解决方案?

对不起,我没有代码片段,想在开始学习之前就弄清楚结构和逻辑。

谢谢

0 个答案:

没有答案