понедельник, 6 февраля 2012 г.

Re: оптимизация

Разбирайся, что у тебя в PublicManager() написано.

06.02.2012 19:51, GSV пишет:
> class Category(models.Model):
> """Category model."""
> title = models.CharField(_('title'), max_length=100)
> slug = models.SlugField(_('slug'), unique=True)
>
> class Meta:
> verbose_name = _(u'Рубрики')
> verbose_name_plural = _(u'Рубрики')
> db_table = 'blog_categories'
> ordering = ('title',)
>
> def __unicode__(self):
> return u'%s' % self.title
>
> @permalink
> def get_absolute_url(self):
> return ('blog_category_detail', None, {'slug': self.slug})
>
> class Post(models.Model):
> """Post model."""
> STATUS_CHOICES = (
> (1, _(u'Чорновик')),
> (2, _(u'Чистовик')),
> (3, _(u'На модерації')),
> )
> RATING_CHOICES = [(x,x) for x in range(1,21)]
> title = models.CharField(_('title'), max_length=200)
> slug = models.SlugField(_('slug'), unique=True, max_length=255)
> title_image = models.ForeignKey(Photo, blank=True, null=True,
> verbose_name=u'Заголовочний малюнок')
> author = models.ForeignKey(User, blank=True, null=True,
> verbose_name=u'Автор')
> #body = models.TextField(_(u'Текст'), )
> body = tinymce_model.HTMLField()
> tease = models.TextField(_('tease'), blank=True,
> help_text=_('Concise text suggested. Does not appear in RSS feed.'))
> status = models.IntegerField(_(u'Стан'), choices=STATUS_CHOICES,
> default=2)
> allow_comments = models.BooleanField(_(u'Дозволити коментувати'),
> default=True)
> publish = models.DateTimeField(_(u'Дата публікації'),
> default=datetime.datetime.now)
> created = models.DateTimeField(_('created'), auto_now_add=True)
> modified = models.DateTimeField(_('modified'), auto_now=True)
> categories = models.ManyToManyField(Category,
> verbose_name=u'Рубрика')
> tags = TagField(verbose_name=u'Теги')
> objects = PublicManager()
> hit_counter = models.IntegerField(_(u'Хітів'),default=1)
> rating = models.IntegerField(choices=RATING_CHOICES, default=20,
> verbose_name=u'Кількість балів')
> rating_count = models.IntegerField(_(u'Кількість голосів'),
> default=1)
> bold_title = models.BooleanField(_(u'Важлива новина'),
> default=False, help_text=_(u'У стрічці новин буде виділена жирним
> шрифтом'))
> comments_count = models.IntegerField(_(u'Коментів'), default=1)
>
>
> и используется django-tagging
>
> Post.objects.all()[:1]
>
> дает 3 запроса на один елемент
>
> SELECT `blog_posts`.`id`, `blog_posts`.`title`, `blog_posts`.`slug`,
> `blog_posts`.`title_image_id`, `blog_posts`.`author_id`,
> `blog_posts`.`body`, `blog_posts`.`tease`, `blog_posts`.`status`,
> `blog_posts`.`allow_comments`, `blog_posts`.`publish`,
> `blog_posts`.`created`, `blog_posts`.`modified`, `blog_posts`.`tags`,
> `blog_posts`.`hit_counter`, `blog_posts`.`rating`,
> `blog_posts`.`rating_count`, `blog_posts`.`bold_title`,
> `blog_posts`.`comments_count` FROM `blog_posts` ORDER BY
> `blog_posts`.`publish` DESC LIMIT 1
>
> SELECT `django_content_type`.`id`, `django_content_type`.`name`,
> `django_content_type`.`app_label`, `django_content_type`.`model` FROM
> `django_content_type` WHERE (`django_content_type`.`model` = post AND
> `django_content_type`.`app_label` = blog )
>
> SELECT *** FROM `tagging_tag` INNER JOIN `tagging_taggeditem` ON
> (`tagging_tag`.`id` = `tagging_taggeditem`.`tag_id`) WHERE
> (`tagging_taggeditem`.`content_type_id` = 13 AND
> `tagging_taggeditem`.`object_id` = 46 ) ORDER BY `tagging_tag`.`name`
> ASC
>
> SELECT `tagging_tag`.`id`, `tagging_tag`.`name`, `tagging_tag`.`slug`
> FROM `tagging_tag` INNER JOIN `tagging_taggeditem` ON
> (`tagging_tag`.`id` = `tagging_taggeditem`.`tag_id`) WHERE
> (`tagging_taggeditem`.`content_type_id` = 13 AND
> `tagging_taggeditem`.`object_id` = 46 ) ORDER BY `tagging_tag`.`name`
> ASC
>
> а выбрал 20 элементов и 60 запросов получилось только в какой-то
> менюшке
>
> On 6 Лют, 15:41, Sergey Zhizhenko<zlobnyis...@gmail.com> wrote:
>> Расшифруйте что вы имеете в виду под "родственниками"?
>> Покажите как объявляете модель?
>>
>> On 06.02.2012, at 17:38, GSV wrote:
>>
>>
>>
>>
>>
>>
>>
>>> очень даже трогает
>>
>>> On 6 Лют, 13:04, Mikhail<glader...@gmail.com> wrote:
>>>> 06.02.2012 17:00, GSV :
>>
>>>> . select_related(), ORM
>>>> .

Комментариев нет:

Отправить комментарий