Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помощь в оптимизации (Alex) 15/03/2009 - 10:26:24
      Re: Помощь в оптимизации (Diter) 15/03/2009 - 12:32:12
      Re: Помощь в оптимизации (Diter) 15/03/2009 - 12:34:31
      Re: Помощь в оптимизации (Alex) 17/03/2009 - 14:16:48
      Re: Помощь в оптимизации (Diter) 18/03/2009 - 16:10:55

> Original message text:
> From: Alex - 15/03/2009 - 10:26:24
> Subject:Помощь в оптимизации
> -----------------
> Столкнулся с проблемой оптимизации, не знаю, что и придумать
>
> В первой таблице содержаться строки типа:
> дата1 товар1 вес1
> дата2 товар2 вес2
> дата3 товар1 вес1
> .............
>
> Во второй таблице:
> дата1 товар1 новыйвес1 покупатель1
> дата1 товар2 новыйвес2 покупатель1
> .............
>
> Например, для покупателя1 надо взять товар2 из второй таблицы, найти его последний по времени вес2 из первой таблицы и вычислить разницу новыйвес2-вес2.
> Проблема в том, что записей в обоих таблицах очень много и ресурсов расходуется очень много.
> Может подскажете как это делать с наименьшими затратами?
>


From: Diter - 18/03/2009 - 16:10:55
Subject:Помощь в оптимизации
-----------------
А что выдает этот же запрос со словом EXPLAIN? Оттуда много полезной информации можно извлечь.
Надо помнить, что берется только один индекс для таблицы, поэтому если есть еще индексы кроме "date", например, "date,time,product" или "date,product", или что-то там еще, то MySQL выбирает только один. Поэтому можно попробовать разбить запрос на два:

SELECT weight FROM
(
(select `date`,`time`,weight from table1 where `date`<'$date' AND product='$product' ORDER BY date,time DESC LIMIT 1)
UNION
(select `date`,`time`,weight from table1 where `date`='$date' AND `time`<='$time' AND product='$product' ORDER BY date,time DESC LIMIT 1 )
) as t
ORDER BY t.date,t.time DESC LIMIT 1



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35174



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |