Оптимизация запроса - MySQL (219525)
Формулировка задачи:
Идет поиск по полю date_added(TIMESTAMP) Как и предполагал добавление индекса для этого поля ничего не дало, EXPLAIN говорит что для поиска используются имеющиеся все строки. Что можно сделать для оптимизации, поле должно содержать дату и время
... WHERE DATE(date_added) = '2017-09-02'
Придумал!
SELECT * FROM `table` WHERE `date_added` = DATE_FORMAT('2017-09-02', '%Y-%m-%d %H:%i:%s') #или SELECT * FROM `table` WHERE `date_added` = NOW()
Решение задачи: «Оптимизация запроса»
textual
Листинг программы
SELECT * FROM `table` WHERE `date_added` >= DATE_FORMAT('2017-09-02', '%Y-%m-%d %H:%i:%s') - INTERVAL 1 DAY
Объяснение кода листинга программы
- В данном коде выполняется запрос к таблице
table
. - В условии WHERE фильтрация записей выполняется по полю
date_added
. - Сравнение выполняется на предмет большей или равной даты, заданной в формате '2017-09-02'.
- В качестве оператора сравнения используется функция DATE_FORMAT с аргументом '%Y-%m-%d %H:%i:%s', которая преобразует строку '2017-09-02' в формат даты и времени.
- Значение переменной INTERVAL равно 1 DAY.
- Знак
-
используется для задания разности между датой и указанным интервалом времени. - Результатом запроса будет выборка всех записей из таблицы
table
, удовлетворяющих условию.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д