PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Django रेस्ट फ्रेमवर्क पेजिनेशन बेहद धीमी गिनती

मुद्दा यह है कि गिनने के लिए उपयोग की जाने वाली क्वेरी वही संभावित जटिल है जो डेटा लाने के लिए उपयोग की जाती है। यह बल्कि बेकार है। PageNumberPagination Django के अपने Paginator . का उपयोग करता है आंतरिक रूप से।

गिनती के लिए क्वेरी को सरल बनाने के लिए पेजिनेटर वर्ग DRF का उपयोग करता है:

from django.core.paginator import Paginator
from django.utils.functional import cached_property
from rest_framework.pagination import PageNumberPagination

class FasterDjangoPaginator(Paginator):
    @cached_property
    def count(self):
        # only select 'id' for counting, much cheaper
        return self.object_list.values('id').count()


class FasterPageNumberPagination(PageNumberPagination):
    django_paginator_class = FasterDjangoPaginator


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टाइमस्टैम्प पर लागू होने पर समान गुणों वाले समय क्षेत्र के नाम अलग परिणाम देते हैं

  2. PostgreSQL के लिए उपलब्ध डेटाबेस आरेख टूल का अवलोकन

  3. MySQL बनाम PostgreSQL? मुझे अपने Django प्रोजेक्ट के लिए किसे चुनना चाहिए?

  4. uWSGI, फ्लास्क, sqlalchemy, और postgres:SSL त्रुटि:डिक्रिप्शन विफल या खराब रिकॉर्ड मैक

  5. PostgreSQL के साथ एक इकाई के लिए एकाधिक हाइबरनेट अनुक्रम जनरेटर