MySQL - Функция или часть запроса

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

MySQL - Функция или часть запроса

Сообщение S_Gur » 24.04.2023 21:06:50

Доброго времени суток. Задача вкратце такая. Сервер MySQL 8. Есть некий список клиентов. Каждый месяц у этого клиента может быть 0, 1 или несколько неких услуг. Нужно сделать отчет за 12 месяцев, в котором будет имя клиента и список этих услуг в строку - с использованием функции Group_Concat. Запрос на список этих услуг на каждого клиента на заданный месяц тоже не простой - из двух таблиц. Отсюда вопрос: как оптимальнее будет организовать представление - обычный селект (соответственно, с подключением 12 раз по две этих таблицы в секцию From), вложенные запросы на каждый месяц или функция, которая принимает в качестве параметра клиента и месяц и возвращает строку услуг через какой-то сепаратор
S_Gur
постоялец
 
Сообщения: 130
Зарегистрирован: 30.12.2018 22:17:42

Re: MySQL - Функция или часть запроса

Сообщение Снег Север » 25.04.2023 13:46:56

Я бы реализовал встроенной функцией - из тех элементарных соображений, что функция выполняется сервером, который всегда быстрее клиентской машины, особенно с учетом времени на прохождение запросов/ответов по сети.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3038
Зарегистрирован: 27.11.2007 16:14:47

Re: MySQL - Функция или часть запроса

Сообщение S_Gur » 25.04.2023 14:11:49

Снег Север, дело не в клиентской машине. Это в любом случае будет вьюха - то есть, в итоге, один селект, выполняющийся как раз на сервере. Но уж больно он тяжелый получается, вот я и пытаюсь его как-то оптимизировать
S_Gur
постоялец
 
Сообщения: 130
Зарегистрирован: 30.12.2018 22:17:42

Re: MySQL - Функция или часть запроса

Сообщение Снег Север » 25.04.2023 15:07:25

Вполне может оказаться, что выгоднее запустить несколько запросов в цикле функции, чем один селект. а вообще - профайлинг вам в помощь:
https://habr.com/ru/articles/70435/
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3038
Зарегистрирован: 27.11.2007 16:14:47


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru