我具有以下数据模型,并且在删除带有大量Order对象(超过500K)的Customer对象时遇到性能问题。尝试删除整个数据集时,出现事务超时错误。
class Customer(db.Model):
id = db.Column(db.Integer, primary_key=True)
orders = db.relationship("Result", back_populates="customer", cascade="all, delete-orphan")
class Order(db.Model):
id = db.Column(db.Integer, primary_key=True)
customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)
customer db.relationship("Customer", back_populates="orders")
为了解决此问题,我正在考虑实现一种类似https://blog.miguelgrinberg.com/post/implementing-the-soft-delete-pattern-with-flask-and-sqlalchemy的软删除方法,并在后台通过Celery任务清除已删除的行。这是解决问题的好方法吗? 如果是,我应该如何进行清除过程?