On Mar 29, 2:48 pm, Jacob Kaplan-Moss <ja...@jacobian.org> wrote:
> On Tue, Mar 29, 2011 at 5:56 AM, Malcolm Box <malcolm....@gmail.com> wrote:
> > On one of my models, the admin choice_list page is taking minutes to
> > load, which makes it somewhat broken.
>
> > The table has about 2M rows and about 2.6GB in size, on InnoDB/MySQL.
> > As far as I can tell, what's breaking things is the paginator code
> > that is doing a SELECT COUNT(*) which is known to be glacially slow on
> > InnoDB with certain types of table.
>
> Yup, this is a known problem: pagination in the admin isn't efficient
> and breaks down past a certain point.
>

OK, thanks. Is there a ticket tracking the problem, I couldn't spot
one?

> > Is there any way to suppress the pagination and/or change it so that
> > it doesn't do the queryset.count()?
>
> In 1.3 you should be able to override ModelAdmin.get_paginator
> (http://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contri...).
> You'll have to subclass django.core.paginator.Paginator and provide an
> interface that doesn't perform COUNTs.
>
> [Yes, this is sorta tricky, and ideally it'd be something Django does
> for you so if you'll share your code when you figure it out I'll try
> to work it into the next release.]

I'll have a look and see what I can come up with. I'll be happy to
share once it's done.

Malcolm

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to