在django中使用物化视图或替代品

时间:2015-04-18 11:54:26

标签: python sql-server django database postgresql

我需要在aggregate应用程序中使用一些频繁更改的django数据,如果我在运行中进行计算,则可能会出现一些性能问题。因此,我需要将aggregate结果保存在表中,并在数据更改时更新它们。因为我使用django可能存在一些选项而某些选项可能不存在。例如,我可以使用django signals和一个表,当发出post_save信号时,会更新结果。另一个选项是materialized views中的postgresqlindexed views中的MSSQL Server,我不知道如何在django中使用或django支持他们或不。在django中执行此操作的最佳方法是什么,以提高结果的性能和准确性。

1 个答案:

答案 0 :(得分:0)

您可以将物化视图与postgres一起使用。非常简单

  1. 您必须使用CREATE MATERIALIZED VIEW my_view as select * from my_table;之类的查询来创建视图
  2. 创建两个模型 在模型Meta中,选项i-managed = false ii- db_name = my_view 此类

    MyModel(models.Model):      类Meta:             管理=错误             db_table ='my_view'

  3. 仅使用ORM的功能并将MyModel视为常规模型。例如MyModel.objects.count()...