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