В представлении Django я делаю что-то вроде этого ..
lists = Stuff.objects.exclude(model2=None)
for alist in lists:
if alist.model2.model3.id == target_id:
addSomeStuff
Замедление происходит от перехода от модели (строки базы данных) к модели в операторе if.
На самом деле это занимает около секунды, когда списки содержат только около 486 элементов. Я считаю, что это медленно, потому что выполняется поиск 486 * 2 + 1 дБ. Если бы я где-то переписал это так, чтобы он захватил всю таблицу model2 и таблицу model3 одновременно, а затем просто отфильтровал там, это было бы попаданием в 3 дБ, я полагаю, что это пошло бы намного быстрее. Это разрушило бы все прелести, которые делает Джанго.
Есть ли какой-нибудь способ убедить django сделать что-то вроде поиска больших объемов данных, как это?