Django:prefetch_related仅为非分页请求授予性能?

时间:2017-09-28 12:30:44

标签: python django performance

例如,我有1000个用户,其中包含许多我在模板中使用的相关对象。

这是对的:

function getLevenshtein1($word)
{
    $words = array();
    for ($i = 0; $i < strlen($word); $i++) {
        // insertions
        $words[] = substr($word, 0, $i) . '_' . substr($word, $i);
        // deletions
        $words[] = substr($word, 0, $i) . substr($word, $i + 1);
        // substitutions
        $words[] = substr($word, 0, $i) . '_' . substr($word, $i + 1);
    }
    // last insertion
    $words[] = $word . '_';
    return $words;
}

总是比这更好:

User.objects.all()[:10]

1 个答案:

答案 0 :(得分:0)

此行将执行额外查询以获取educationsplaces的相关对象。

User.objects.all().prefetch_related('educations', 'places')[:10]

但是它只会获取切片查询集User.objects.all()[:10]的相关对象,因此您不必担心它会将数据库中数以千计的其他用户提取相关对象。