PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Пагинацията на Django Rest Framework се отчита изключително бавно

Проблемът е, че заявката, използвана за броене, е същата потенциално сложна като използваната за извличане на данните. Това е доста разточително. PageNumberPagination използва собствения Paginator на Django вътрешно.

За да направи заявката за броя по-опростена, да се отмени, класът на пагинатора 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. Как да създадете нова база данни с вече инсталирано разширение hstore?

  2. Изпълнение на множество екземпляри на PostgreSQL на един хост

  3. Намерете разликата между времевите марки в секунди в PostgreSQL

  4. Коментар символ/символи в postgres / postgresql / psql?

  5. Heroku PostgreSQL GROUP_BY грешка в приложението Rails