Дублирование записей происходит слишком медленно

У нас есть база данных со 100.000 артистов. Но некоторые артисты являются дубликатами. Мы хотим запустить приведенный ниже скрипт, чтобы сравнить каждого артиста с каждым артистом и составить список с возможными дубликатами.

Но это приводит к 10 миллиардам сравнений. Есть идеи, как сделать это умнее / быстрее.

artistquery = Artist.objects.filter(mainartist__rank__pos__lt=999, created_at__gt=latestcheckdate).order_by('name').distinct()

from difflib import SequenceMatcher

for artist in artistquery:
    checkedartistlist.append(artist.id)
    ref_artistquery = Artist.objects.all().exclude(id__in=checkedartistlist)

    for ref_artist in ref_artistquery:
        similarity = SequenceMatcher(None, artist.name, ref_artist.name).ratio()
        if similarity > 0.90:

            SimilarArtist.objects.get_or_create(artist1=artist, artist2=ref_artist)
Вернуться на верх