Optimize performance with statement-level triggers
mainBy default, django-pghistory uses row-level triggers. While this is highly efficient because it happens within the database instance without extra round-trips, a bulk update (e.g., Model.objects.update(...)) over many elements will result in many internal database operations.
To reduce the impact of bulk operations, use level=pghistory.Statement in the pghistory.track decorator to leverage statement-level triggers.
@pghistory.track(level=pghistory.Statement)
class MyModel(models.Model):
...