Avatar ·

在会话中处理大量记录

📁 功能, 烧瓶, 人工智能, 工作, 项目

使用SQLAlchemy处理大量记录的正确方法是什么?

我有两个表。第一个表有500万条记录,类型如下:question_id、view_count、counted。第二个表包含每个唯一question_id的view_count总和。如果我们从第一个表中将记录计入第二个表,counted会被设置为true。

目前代码如下:

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:            # 处理逻辑            pass        counter += 1