один запрос или несклоко? (оптимиз)

Печать RSS
354

Автор
Чатланин
0
вообщем у меня такой вопрос. что лучще, несколько запросов, или один. к примеру, у меня на главной, счётики для гости, форума, обмена и тд. я составил такой запрс:
___
SELECT COUNT(*) as `upload_count`,
SUM(`size`) as `upload_size`,
(SELECT COUNT(*) FROM `upload` WHERE `day` = ".date("d.m.y",time())." AND `type`='file') as `upload_new`,
(SELECT COUNT(*) FROM `users`) as `users_count`,
(SELECT COUNT(*) FROM `guest`) as `guest_count`,
(SELECT COUNT(*) FROM `achat`) as `achat_count`,
(SELECT COUNT(*) FROM `quotes` WHERE `mod` = 1) as `quotes_count`,
(SELECT `time` FROM `news` ORDER BY `id` DESC LIMIT 1) as `news_time`,
(SELECT `id` FROM `news` ORDER BY `id` DESC LIMIT 1) as `news_id`,
(SELECT `text` FROM `news` ORDER BY `id` DESC LIMIT 1) as `news_text`,
(SELECT COUNT(*) FROM `forum` WHERE `type` = 'themes') as `forum_themes`,
(SELECT COUNT(*) FROM `forum` WHERE `type` = 'massage') as `forum_massage` FROM `upload` WHERE `type` = 'file'
---
так вот, лучше разделить его, или оставить как есть?
А

Оранжевые штаны
0
Один запрос естественно лучше, а вообще, сугубо относительный вопрос
О

Землянин
0
2, чем же? В данном случае создается временная таблица, и сложность запроса увеличивается.

2000 лет д.н.э.
0
А не лучше для этого шаблон использовать бредет?
Не очень силен но вроде они как раз для повторяющихся схожих запросов и создавались..
А

Оранжевые штаны
0
3. Aligan, не перечитывал код, просто ответил на вопрос о количестве запросов, так что не знаю что "В данном случае"
О

Землянин
0
ramzes, причем тут шаблоны-то?))) Они никак не влияют на результ выборки)

Ктулху
0
Лучше уж грузить мускул чем PHP скрипт, мускул хоть можно на отдельный сервер вынести
О

Землянин
0
7, лучше писать запросы по отдельности, либо использовать LEFT JOIN. Но я бы в данном случае советовал использовать несколько простых запросов. Один многотабличный запрос нужен там где результат выборки запроса из одной таблицы зависит от другой одной или несколько связующих таблиц.
Изменил: Олег (05.02.2010 / 20:52)

2000 лет д.н.э.
0
#6, они влияют на скорость выполнения запроса, при чем тут результаты, я о них ни чего не говорил?
Ладно проехали.
Автор
Чатланин
0
ну а если, примерно такой запрос, использовать с циклом, то есть было так:
(запрос)
while()
{
(запрос)
(запрос)
}
я сделал так:
(запрос, запрос, запрос)
while()
{
вывод
}
так лучше?
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск