Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вложенные запросы 
:(
    Опции темы
gcc
Дата 5.2.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 3
Всего: 17



подскажите нужно ли стремиться писать вложенные запросы в одном запросе, вместо нескольких разных запросов?

mysql быстрее будет если будут вложенные чем разные... ? 

на этом форуме например запросов до 10 и больше, но можно все около 2-3...

специально спрашиваю чтобы знать как правильно, сейчас 3-8...

Это сообщение отредактировал(а) gcc - 5.2.2009, 18:08
PM WWW ICQ Skype GTalk Jabber   Вверх
skyboy
Дата 5.2.2009, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



смотря, что за запросы; какую несут нагрузку; как часто выполняются.
ну, и само собой - надо ли использовать именно вложенные подзапросы, зависит от того, какую они будут выполнять функцию.
само по себе количество запросов за сеанс влияет на быстродействие намного слабее, чем качество запросов(кривые-руки-style) и их количество одновременно работающих пользователей.
уменьшение количества запросов за счет использования подзапросов практически ничего не даст(в отличие от уменьшения количества запросов путем кеширования).
PM MAIL   Вверх
gcc
Дата 7.6.2009, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 3
Всего: 17



ну вот например,  с точки зрния правильности (производительность сейсас не нужна, если они будут мадленно, то их можно поставить только на одну страницу), как их писать? вложенными, ALL UNION, разными....

Код

SELECT id, username,
               ( SELECT count(*) from sessions where expires >= '.$time.' or expires is null ),
               ( SELECT count(*) from comment ),
               ( SELECT count(*) from content ),
               ( SELECT count(*) from section ),
               ( SELECT count(*) from users ),
               
               (select id_co, name_text from comment ORDER BY id desc limit 2 )
               (select id_co, name_text from section ORDER BY id desc limit 2 )
               (select id_co, name_text from content ORDER BY id desc limit 2 )
               (select id_co, name_text from comment ORDER BY id desc limit 2 )
               (select id_co, name_text from comment ORDER BY id desc limit 2 )
               
                   FROM users ORDER BY id desc limit 1


Добавлено @ 17:53
Цитата(skyboy @ 5.2.2009,  18:31)
в отличие от уменьшения количества запросов путем кеширования

я нигде не видел что было написано, например, что если использовать memcache, то нужно писать много маленьких запросов... 

Это сообщение отредактировал(а) gcc - 7.6.2009, 17:56
PM WWW ICQ Skype GTalk Jabber   Вверх
skyboy
Дата 8.6.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(gcc @  7.6.2009,  16:50 Найти цитируемый пост)
что если использовать memcache, то нужно писать много маленьких запросов... 

я имел в виду другое.
вот у тебя 5 запросов.
если ты их объединишь в один большой, ускорение может быть вообще не заметно(если сервер БД не слишком удален от клиента, получающего результат).
С другой стороны, если результат выполнения хоть одного запроса можно закешировать, то скорость может возрасти значительно.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0995 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.