在Django

时间:2018-02-20 11:16:35

标签: python django postgresql django-models query-optimization

我在我的Django项目中执行以下查询:

for obj in Path.objects.filter(Q(server_name__exact=name),
                               Q(keywords__overlap=all_words)):

字段keywordsArrayField,我使用overlap过滤器,它等同于python中的后续内容:

keywords.intersection(all_words) # if keywords is a set

现在的问题是当all_words是一个小的列表,小于10时,它的工作速度非常快,但当all_words是一个更大的数组,超过20-30时,它需要很多时间。

这有什么办法吗?我测试了以下其他方法,但它没有任何不同。

for obj in Path.objects.filter(server_name=name):
    if all_words.intersection(obj.keywords):

0 个答案:

没有答案