Django通用关系的SQL索引

时间:2013-04-02 12:07:15

标签: django django-models indexing django-postgresql

在Django模型中的GenericForeignKey上创建SQL索引是否可行/合理?

我想对postgreSQL数据库中的大量(~1百万)对象执行查找。我的查找基于相关模型上的GenericForeignkey,它实际上存储为两个字段:object_id(被链接到的对象的pk)和content_type(表示被链接对象类型的Django ContentType模型的FK)到)。

在SQL术语中,这基本上是:

WHERE ("my_model"."content_type_id" = x AND "my_model"."object_id" = y) 

object_id是一个非唯一字段 - 由于通用FK可以链接到多个模型,因此不同类型的对象可能具有相同的pk

我想知道我是否可以通过在my_model.object_id上创建一个非唯一索引来加快查询时间。我对索引的了解是有限的,所以我可能没有正确理解它们的用法,但我知道Django会自动创建正常ForeignKey关系的索引,所以我假设有一个相关的加速。

有没有人有为GenericForeignKeys创建索引的经验?您是否发现性能提升?非常感谢任何帮助或见解。

0 个答案:

没有答案