Я бы рекомендовал написать логику следующим образом:
SELECT COUNT(*)
FROM `audit` a JOIN
`user` u
ON u.id = a.auditor_id
WHERE a.auditor_id = 1 AND
a.created_date >= curdate() - interval (1 - day(curdate()) day AND
a.created_date < (curdate() - interval (1 - day(curdate()) day) + interval 1 month;
Это имеет два преимущества по сравнению с использованием MONTH(a.created_date)
.Во-первых, он включает год, поэтому учитывается только текущий месяц.
Возможно, что еще важнее, это "индекс-безопасный".Он может использовать индекс на audit(auditor_id, created_date)
.Чтобы оптимизировать использование индекса, вы должны избегать функций для столбцов.