Avatar ·

Arbeiten mit einer großen Anzahl von Datensätzen in der Session

📁 Funktion, Mikroframework Flask, KI, Arbeit, Projekt

Wie arbeitet man korrekt mit einer großen Anzahl von Datensätzen mit SQLAlchemy?

Ich habe zwei Tabellen. Die erste mit 5 Millionen Datensätzen hat die folgenden Typen: question_id, view_count, counted. Die zweite Tabelle enthält die Summe von view_count für jede eindeutige question_id. Wenn wir den Eintrag aus der ersten Tabelle in der zweiten berücksichtigt haben, wird counted auf true gesetzt.

Derzeit sieht es so aus:

def update_most_viewed(): query = QuestionViewHistory.query.filter_by(counted=False).distinct()    question_count = query.count()    frame_size = 1000    counter = 0    while counter <= question_count:        all_questions = query.offset(counter*frame_size).limit(frame_size).all()        for question in all_questions:            most_viewed = MostViewed.query.filter_by(question_id=question.question_id).first()            if most_viewed:                most_viewed.view_count += question.view_count            else:                most_viewed = MostViewed(question_id=question.question_id, view_count=question.view_count)                db.session.add(most_viewed)            question.counted = True        db.session.commit()        counter += 1