Python Postgresql重复数据消除耗费大量时间。有什么优化吗?

Python Postgresql重复数据消除耗费大量时间。有什么优化吗?,python,postgresql,python-dedupe,Python,Postgresql,Python Dedupe,我正在使用postgres重复数据消除。 对于10000行,它需要163秒。我发现它在这一部分占用了大部分时间: full_data = [] cluster_membership = collections.defaultdict(lambda : 'x') for cluster_id, (cluster, score) in enumerate(clustered_dupes): for record_id in cluster: for row in data:

我正在使用postgres重复数据消除。 对于10000行,它需要163秒。我发现它在这一部分占用了大部分时间:

full_data = []
cluster_membership = collections.defaultdict(lambda : 'x')
for cluster_id, (cluster, score) in enumerate(clustered_dupes):
    for record_id in cluster:
        for row in data:
            if record_id == int(row[0]):
                row = list(row)
                row.insert(0,cluster_id)
                row = tuple(row)
                full_data.append(row)

该部分是否有任何可能的优化,以使其在较低的时间复杂度下产生相同的结果?这个脚本可以处理1.5亿条记录吗?

考虑使用SQL而不是Python代码进行必要的复制。可能能够帮助您了解
数据的来源?此外,
cluster\u成员身份
似乎在本例中未使用snippet@danielcorin我已经浏览了链接。每个解决方案都是删除重复项,但我想从postgres表中查找重复记录的群集,而不是删除它们。@AzatIbrakov“data”将select查询的结果存储在postgres表中。我已经删除了“cluster_membership”语句,但所用的时间仍然是163秒,与前面相同。请提供输入和所需输出的示例