问题:我有一个庞大的用户数据库,并且有很多重复项(2500万个条目)。我需要找到这些重复项并将它们写入新的查找表(我正在使用SQL)
例如:
下面是列出的方式: 名称,姓氏,注册, id
用户1: 约翰_多伊_ 1987/02/13 _ 12
User2: 约翰_多伊_ 1987/02/13 _32
因此,在我的查询表中,我需要将这两个保存为同一用户,并位于引用其两个ID的中央ID下。
如果dob相同,并且名称和姓氏通过模糊匹配成功,则假定它是同一用户。
我建议的解决方案: 因为dob必须相同才能假定它们是同一个人,所以我从主数据库中创建了较小的索引,并按如下方式进行分割:我从最低的年份和第一个月开始,并将其分配给第一个与之匹配的线程,然后仅写入将是我的查找表的.csv文件。因此,接下来的每个月我都会提供下一个线程,直到他们都忙。然后,完成后就继续前进。
我的问题:
鉴于情况和我的解决方案,此解决方案中是否存在严重的瓶颈?
可以通过某种方式对其进行优化以使其更好地工作吗?例如。而不是建立一个新索引,我最好搜索一个存储数据的数组吗?
哪种编程语言最适合?我当时在考虑使用Python,但出于某种原因,我记得/感到这不是最快的解决方案?我也在考虑C#?
除了多线程之外,还有其他可以帮助优化这一点的东西吗?
对此还有其他建议吗?我忽略或没想到的东西?只是为此的最佳解决方案?
对不起,我没有代码片段,想在开始学习之前就弄清楚结构和逻辑。
谢谢