как вариант - отключить ftp, запускать скрипты от иного пользователя, чем тот, которым логинишься по ssh (по ключу с паролем на ключ, разумеется, и двухфакторной авторизацией).
условно, ты по ssh заходишь пользователем updater, а скрипты и вся конфигурация хранятся как worker:worker с правами 700 и запускаются от пользователя worker.
select
count(a.id) as all_a,
sum(ifnull(b.id, 0)) as all_b,
sum(ifnull(c.id, 0)) as all_c
from a left join b using(b_join) left join c using(c_join)
group by a.id
А нагрузка большая сейчас и в планах?
Если нет, то я бы сделал несколько запросов:
1. С ограничениями по всем параметрам
2. Последовательно отбрасывая менее весомые критерии.
Если никакие фильтры не вернули ни одного ряда - то все критерии в null
Select a.dt, ifnull(b._cnt, 0) as _cnt
From (
Select '00' as h
Union all select '01' as h
...
Union all select '23' as h
) a
Left join (select DATE_FORMAT(NOW(), '%H') as h, 100500 as _cnt) b using(h)