Всем привет!
Помогите с советом или решением?
На портале в определённом месте выполняется AJAX-запрос. PHP-файл, к которому идёт обращение, обращается к базе данных MySQL. Всё работает корректно, но есть вопрос к производительности.
Изначально SQL-запрос выглядел так:
$getTaskSql = "SELECT COUNT(*) AS `t_id` FROM `tasks` WHERE `ispol`='" . $row['id'] . "' AND `status` !=3 && `status` !=6";
Считается количество строк в таблице tasks для конкретного пользователя.
Недавно потребовалось считать количество строк за некоторый интервал от текущей даты.
Строка приобрела вид:
$getTaskSql = "SELECT COUNT(*) AS `t_id` FROM `tasks` WHERE `ispol`='" . $row['id'] . "' AND `status` !=3 && `status` !=6 AND `daten` > (date_ADD(now(), interval -62 DAY ))";
Т.е., всё то же самое, но за прошедшие 62 дня.
Но обнаружился неприятный нюанс - увеличилось время обработки AJAX-запроса. Если раньше данные в полях заполнялись за 1 - 2 секунды, то теперь стало от 2 до 6 секунд.
Стоит убрать из строки запроса
AND `daten` > (date_ADD(now(), interval -62 DAY )), как опять всё укладывается в 1 - 2 секунды.
Я не являюсь самым крутым специалистом в SQL, поэтому прошу помощи у Вас.
Если есть идеи, как можно написать запрос по другому, оптимизировать его, то подскажите.
Спасибо.