Допустим, у меня есть два следующих запроса, получающих агрегированные данные из двух отдельных таблиц:
SELECT count(*) as count_a
FROM table_a
WHERE some_column = "some_value"
SELECT count(*) as count_b
FROM table_b
WHERE another_column = "another_value"
Запросы выполняются с помощью кода, который использует как count_a
, так и count_b
в какое-то вычисление
Чтобы получить count_a
и count_b
, я могу либо выполнить оба запроса параллельно, либо объединить их в один запрос (ниже), который может быть выполнен сам по себе, чтобы получить оба результаты:
SELECT (
SELECT count(*)
FROM table_a
WHERE some_column = "some_value"
) as count_a,
(
SELECT count(*)
FROM table_b
WHERE another_column = "another_value"
) as count_b
Могу ли я заметить заметную (или даже небольшую) разницу в производительности между двумя подходами? Если да, какой подход более эффективен?