У меня есть база данных с двумя таблицами:HTSQL сгенерированный запрос MySQL чрезвычайно медленный
прилагательные - первичный ключ ID; NAME varchar; adjectives_reviews - первичный ключ ID; Внешний ключ ADJECTIVE_ID; Внешний ключ REVIEW_ID; COUNT int
Я хочу получить список различных ADJECTIVE_ID от adjectives_reviews с суммой значений в столбце «COUNT» по всем строкам с тем же ADJECTIVE_ID.
Таблица прилагательных насчитывает 46 000 строк, а прилагательные_объекты имеют ~ 2,849,708.
Я использую следующий запрос: HTSQL
/adjectives{name,sum(adjectives_reviews.count)}
, который транслируется в SQL:
SELECT `adjectives`.`name`,
COALESCE(`adjectives_reviews`.`sum`, 0)
FROM `adjectives`
LEFT OUTER JOIN (SELECT CAST(SUM(`adjectives_reviews`.`count`) AS SIGNED INTEGER) AS `sum`,
`adjectives_reviews`.`adjective_id`
FROM `adjectives_reviews`
GROUP BY 2) AS `adjectives_reviews`
ON (`adjectives`.`id` = `adjectives_reviews`.`adjective_id`)
ORDER BY `adjectives`.`id` ASC
Этот запрос дает результат, который я хочу, но он слишком медленный. На самом деле это так медленно, что HTTP-сервер отключается, и я не могу получить выходной CSV-файл, который мне нужен. Я ищу способ оптимизировать этот запрос или, альтернативно, способ получить результат как CSV без использования HTTP-интерфейса HTSQL.