Какой путь лучше:DATEDIFF против DATE для сравнения дат в MySQL
DATE(updated_at) = DATE('2015-03-01 14:34:12')
или
DATEDIFF(updated_at, '2015-03-01 14:34:12') = 0
Какой путь лучше:DATEDIFF против DATE для сравнения дат в MySQL
DATE(updated_at) = DATE('2015-03-01 14:34:12')
или
DATEDIFF(updated_at, '2015-03-01 14:34:12') = 0
Для повышения производительности, вы хотите:
(updated_at >= DATE('2015-03-01 14:34:12') and
updated_at < date_add(DATE('2015-03-01 14:34:12'), interval 1 day)
)
Это позволяет MySQL, чтобы использовать индекс на updated_at
для запроса. Когда вы помещаете столбец в функцию, индекс обычно не может использоваться.
Но если у меня нет индекса для поля updated_at? Все ли опции будут равны? – mikatakana
Если у вас нет индекса в столбце, все требуют полного сканирования таблицы, чтобы все они выполнялись одинаково плохо. –
Почему это должно быть лучше, чем другое? –