Я выполняю запрос, который содержит или объединяет связку Q и, похоже, занимает много времени. Вот некоторые псевдо-кодВлияние производительности объектов Q в запросе django
query_params = []
for i in range(80): #there are about 80ish Q objects being created
query_params.append(Q(filter_stuff))
Тогда я или они все вместе
query_params = reduce(or_, query_params)
И когда я выполнить запрос
query = list(MyModel.objects.filter(query_params))
Он висит в течение длительного времени. Я знаю, что это довольно общий вопрос, и трудно дать диагностику без глубокого понимания структуры данных (что было бы трудно дать здесь). Но мне просто любопытно, есть ли какие-либо последствия для производительности объектов Q
в запросе django.
ваш разговор о oring tog эфир 80 условий, которые будут медленными, независимо от того, что ... Я бы рекомендовал выяснить, какой способ запросить нужные записи. –
@doniyor Нет модели, у которой мало полей, но я пытаюсь найти определенные пары из них (т. q1 = Q (field1 = val1, field2 = val2), q2 = Q (field1 = val3, field2 = val4) и т. д.) – sedavidw
Я бы предложил создать индекс спаривания. –