Это то, как
НЕ надо делать фильтр, если нужны строки за определённый месяц.
Потому что mysql не умеет функциональные индексы, значит если даже индекс подходящий по дате есть - использоваться он не будет. Должно быть:
WHERE f=1
AND tab.site_id = '5568'
AND user_payment >= '2016-06-01'
AND user_payment < '2017-07-01'
Что отлично пойдёт по индексу, например, site_id, user_payment. Надо ли сюда включать f - смотрите ваши данные, вам лучше знать вашу базу.