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




MySQL.RU - Webboard



Вернуться
Вот такой вот запрос. Помогите оптимизировать (Слава) 28/09/2011 - 01:18:47
      Re: Структуру таблиц в студию (Akina) 28/09/2011 - 09:22:07
      Re: Структуру таблиц в студию (Слава) 28/09/2011 - 10:43:29
      Re: А как картинку с EXPLAIN сюда ? (Слава) 28/09/2011 - 10:47:13
      Re: explain (Слава) 28/09/2011 - 10:51:44
      Re: explain (Akina) 28/09/2011 - 15:32:52
      Re: explain (Слава) 28/09/2011 - 19:31:34
      Re: explain (Akina) 29/09/2011 - 08:59:13
      Re: explain (Слава) 29/09/2011 - 10:02:15
      Re: explain (Akina) 29/09/2011 - 12:26:55
      Re: переписал запрос вот он и его explain (Слава) 29/09/2011 - 21:24:28
      Re: переписал запрос вот он и его explain (Akina) 30/09/2011 - 08:57:26
      Re: переписал запрос вот он и его explain (Слава) 30/09/2011 - 10:22:09
      Re: Как быть (Akina) 30/09/2011 - 10:43:18

> Original message text:
> From: Слава - 28/09/2011 - 01:18:47
> Subject:Вот такой вот запрос. Помогите оптимизировать
> -----------------
> SELECT
> user_id, resultat, times, login, nickname, title, cms_users.id
> , DATE_FORMAT(`pubdate`, '%d.%m.%Y - %H:%i') AS `kogda`
> FROM cms_games_scores s1
> LEFT JOIN `cms_games_turnir` t ON `t`.`id`='".$zapros."'
> LEFT JOIN `cms_users` u ON `u`.`id`=`s1`.`user_id`
> WHERE resultat=(SELECT MAX(s2.resultat)
> FROM cms_games_scores s2
> WHERE s1.user_id = s2.user_id
> AND `turnir`='".$zapros."')
> ORDER BY `resultat`
> DESC
>


From: Akina - 30/09/2011 - 08:57:26
Subject:переписал запрос вот он и его explain
-----------------
> что скажете?

Две вещи скажу.

Первая неприятная - Вы, извините, слишком неаккуратны. Настоятельно рекомендую возвести в ранг догмы - если в запросе используется более 1 таблицы, ДЛЯ ВСЕХ ПОЛЕЙ указываем алиасы таблиц. Независимо от очевидности того, в какой таблице поле.

Вторая тоже неприятная - в результате выполнения запроса Вы получите всё, что угодно, но вряд ли то, что нужно. У Вас есть группировка, есть агрегатная функция... и есть поля, которые не используются ни там, ни там. Так вот - в качестве содержимого ЭТИХ полей будет возвращено одно случайно выбранное значение из группы. И даже не факт, что значения двух таких полей будут взяты из одной записи группы. Это, кстати, явно описано в документации на MySQL.

Ну а в остальном вроде нормально - на 300 записях ни filesort, ни temporary не страшны. Если речь не идёт о сотнях запросов в секунду.


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

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

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



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