簡體   English   中英

Django:想提高查詢速度

[英]Django: want to improve speed of query

我有一個django應用程序,顯示每個客戶端的項目列表。 它顯示項目ID,替代ID,標題和更多其他信息。 因為我有很多項目(每個客戶可能有數千項),所以加載所有項目可能需要很長時間。 有沒有辦法提高這個速度?

def client_items(request, client_id = 0):
    client = None
    items = None
    try:
        client = models.Client.objects.get(pk = client_id)
        items = client.storageitem_set.all()
    except:
        return HttpResponse(reverse(return_clients))
    return render_to_response('items.html', {'items':items, 'client':client}, context_instance = RequestContext(request))

{% for item in items %}
        <tr class="items_table_row">
                <td><input type="checkbox" name="{{item.pk}}" value="{{item.pk}}" checked="checked"></td>
                <td>{{item.company_id}}</td><td>{{item.alternative_id}}</td><td>{{item.title}}</td><td>{{item.type}}</td><td>{{item.format}}</td>
                <td><span id="{{item.pk}}" name="type">{{item.itemstatushistory_set.latest}}</span></td><td>{{item.itemstatushistory_set.latest.date.date|date:"d M Y"}}</td>
{% endfor %}

Paginate導致比數以千計的項目更易於管理的東西。 沒有分頁它不僅速度慢,而且還提供糟糕的用戶體驗。

確保使用恆定數量的數據庫查詢加載項目。 對於大多數視圖,您應該能夠僅使用一個數據庫讀取來加載所有數據。

如果您注意到查詢的增加或減少取決於您顯示的項目數,則可能需要在查詢集中包含select_related()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM