GrayMaster
Новичок
Сложные вложенные запросы и временные таблицы
Добрый день !
Есть SQL запрос для обработки данных (выполняется редко):
Вопрос состоит в следующем: Есть ли смысл разбивать выполнение этого и подобных запросов на временные таблицы ? Т.е. выолнять не один SQL запрос, а серию, записывая данные в промежуточные таблицы ? При обработке, в таблицах могут быть миллионы записей.
Какие будут плюсы и минусы использования промежуточных врменных таблиц ?
Спасибо.
Добрый день !
Есть SQL запрос для обработки данных (выполняется редко):
Код:
SET @cur_group = '', @g_counter =1;
INSERT INTO `base`
SELECT
NULL,
`engine_id`,
`module_id`,
0,
NULL,
0,
NULL,
`data`,
`data_base`
FROM (
SELECT
`new`,
`engine_id`,
`module_id`,
`data`,
@g_counter := IF (`data_base` = @cur_group , @g_counter +1, 1) AS `counter` ,
@cur_group := IF (`data_base` = @cur_group , @cur_group , `data_base`) AS `group`
FROM (
SELECT * FROM (
SELECT '0' AS `new`, `engine_id`, `module_id`, `data`, `data_base` FROM `base`
WHERE `engine_id`='1'
UNION ALL
SELECT '1' AS `new`, `engine_id`, `module_id`, `data`, `data_base` FROM `result`
WHERE `id`<='20000' AND `engine_id`='1' AND `p_engine_id`='3'
ORDER BY `new`
) AS `order_new`
GROUP BY `data`
) AS `group_data`
ORDER BY `data_base`
) AS `counted`
WHERE `new`='1' AND `counter` <= 10
Какие будут плюсы и минусы использования промежуточных врменных таблиц ?
Спасибо.