LINUX.ORG.RU

История изменений

Исправление fMad, (текущая версия) :

у меня там mptt деревья, одно из них с 6 тысячами листиков, которые возвращаются от mptt::get_descendants, а потом через ManyToManyField выборка в 200 сотням тысяч items

индексы стоят

переопределил get_descendants так, чтобы работало не со всем деревом, с определённым уровнем

и четырёх этажный подсточёт количества (для пагинации) items

Item.objects.filter(category__in=category.get_descendants(include_self=True), hidden=False).annotate(count_items=Count('id')).count()

тоже переписан на sql, вместо 4 запросов к 3 таблицам, один с подзапросом к двумя

key_buffer_size = 512M

вроде на уровне Django orm и sql некуда больше оптимизировать — вот и думаю про кеширование.

а что за кеширование на уровне СубД?

имеет ли смысл выносить эти таблицы (read only) в sqlite ?

Исправление fMad, :

у меня там mptt деревья, одно из них с 6 тысячами листиков, которые возвращаются от mptt::get_descendants, а потом через ManyToManyField выборка в 200 сотням тысяч items

индексы стоят

переопределил get_descendants так, чтобы работало не со всем деревом, с определённым уровнем

и четырёх этажный подсточёт количества (для пагинации) items Item.objects.filter(category__in=c['category'].get_descendants(include_self=True), hidden=False).annotate(count_items=Count('id')).count()

тоже переписан на sql, вместо 4 запросов к 3 таблицам, один с подзапросом к двумя

key_buffer_size = 512M

вроде на уровне Django orm и sql некуда больше оптимизировать — вот и думаю про кеширование.

а что за кеширование на уровне СубД?

имеет ли смысл выносить эти таблицы (read only) в sqlite ?

Исходная версия fMad, :

у меня там mptt деревья, одно из них с 6 тысячами листиков, которые возвращаются от mptt::get_descendants, а потом через ManyToManyField выборка в 200 сотням тысяч items

индексы стоят

переопределил get_descendants так, чтобы работало не со всем деревом, с определённым уровнем

и четырёх этажный подсточёт количества (для пагинации) items Item.objects.filter(category__in=c['category'].get_descendants(include_self=True), hidden=False).annotate(count_items=Count('id')).count()

тоже переписан на sql, вместо 4 запросов к 3 таблицам, один с подзапросом к двумя

key_buffer_size = 512M

вроде на уровне Django orm и sql некуда больше оптимизировать — вот и думаю про кеширование.

а что за кеширование на уровне СубД?