[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Большой запрос
maximka787
Ребят, а нормально ли использование запроса MYSQL размером 8.000 символов?)

Дело в том, что на странице одного сайта нужно вывести товары (по 5 штук) из каждой категории. Категорий 24. И либо делать 24 запроса к БД, либо вот такой большой UNION

Выполняется около 0.4 - 0.2 сек.


Дополнение: надо вывести по 5 товаров, т.е LIMIT 5

_____________
..Работает - не трогай!
stump
Запрос в студию.

_____________
Трус не играет в хокей
Игорь_Vasinsky
Цитата
8.000

я тебя умоляю)

у меня на работе ещё и не такое бывает, я уж не говорю про хранимки.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sergeiss
Цитата (maximka787 @ 3.04.2015 - 19:13)
Ребят, а нормально ли использование запроса MYSQL размером 8.000 символов?)

Была тема давно, "мерялись запросами" wink.gif http://phpforum.su/index.php?showtopic=50424&st=0

Я посмотрел - мои запросы по количеству символов почти в 2 раза больше, чем 8 килобайт.

А это камент к моему запросу, написанный в той теме чуть позднее:
Цитата (sergeiss @ 1.09.2012 - 00:19)
После проведения оптимизации БД запрос стал выполняться не 30-40 секунд, а всего 4-5. А именно, были сделаны корректные партиции (partition).


Так что, ты не напугаешь ни нас, ни БД запросами по 8 КБ user posted image

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vital
Цитата
И либо делать 24 запроса к БД, либо вот такой большой UNION

либо научиться писать код.

Ну или хотя бы правильные вопросы задавать на форуме. Пока явно нет ни того ни другого.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
maximka787
Цитата (vital @ 3.04.2015 - 22:15)
Цитата
И либо делать 24 запроса к БД, либо вот такой большой UNION

либо научиться писать код.

Ну или хотя бы правильные вопросы задавать на форуме. Пока явно нет ни того ни другого.

эээ, дружище, чего ты так сразу..? я ж не со зла))

Запрос самый простой

(SELECT [тут 10 полей типа tab1.`a1`,tab1.`a2`,tab2.`b1` ...] FROM tab1, tab2 WHERE .... AND category=1 ORDER BY tab1.`id` DESC LIMIT 5 )
UNION
(SELECT [аналогично] FROM tab1,tab2 WHERE .... AND category=2 ORDER BY tab1.`id` DESC LIMIT 5 )
UNION
(SELECT [аналогично] FROM tab1,tab2 WHERE .... AND category=3 ORDER BY tab1.`id` DESC LIMIT 5 )
UNION
....
(SELECT [аналогично] FROM tab1,tab2 WHERE .... AND category=24 ORDER BY tab1.`id` DESC LIMIT 5 )

Запрос собирается через цикл в PHP и этот монстр 8КБ отправляется в mysql_query()


В целом успокоили. Спасибо парни. Вопрос решен!

_____________
..Работает - не трогай!
Игорь_Vasinsky
и что тут криминального?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
maximka787
Цитата (Игорь_Vasinsky @ 6.04.2015 - 02:23)
и что тут криминального?

То, что он 8 кб. Отобразил его на экране, без переносов, занял почти весь экран. Подумал это беспредел)

_____________
..Работает - не трогай!
Игорь_Vasinsky
ну если тебе необходимо выбрать из нескольких таблиц данные что тут поделаешь

логика в запросе наипростейшая - основной объём это перечисление полей вручную + условия с лимитом

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vital
Цитата

логика в запросе наипростейшая - основной объём это перечисление полей вручную + условия с лимитом

и все же, 24 uniona - перебор.

Чую дурацкую задачу, и еще более дурацкую реализацию.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Игорь_Vasinsky
Цитата
Чую дурацкую задачу, и еще более дурацкую реализацию.


Цитата
AND category=2


Цитата
AND category=3


...

сдаётся мне нужно так

AND category in (2,3,4,5) 
[php]

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sergeiss
Цитата (Игорь_Vasinsky @ 6.04.2015 - 22:14)
сдаётся мне нужно так

AND category in (2,3,4,5)

Но при этом ты не выберешь строго по 5 в каждой категории, как это хочет ТС. Его ЮНИОНы вполне приемлемы, мне кажется.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_Vasinsky
Цитата
Но при этом ты не выберешь строго по 5 в каждой категории

угу. не учёл.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.