Tengo una consulta que se puede expresar de 2 maneras diferentes con los mismos resultados. ¿Cuál es mejor, por rendimiento u otras razones?¿Cuál consulta de fecha mySQL tiene mejor rendimiento?
Primera consulta:
SELECT post_id FROM posts
WHERE post_date BETWEEN '2010-01-01 00:00:00' AND '2010-12-31 23:59:59'
Segunda consulta:
SELECT post_id FROM posts
WHERE YEAR(post_date)=2010
Gracias de antemano.
Después de la sugerencia para la evaluación comparativa He tenido algunas búsquedas y pruebas. Mis pruebas no fueron puntos de referencia debido a algunos problemas en mi computadora, pero me dieron una idea.
He probado mi mesa de remo 4000 y no hubo una diferencia importante. BETWEEN fue más de 0.01-0.02 segundos que AÑO (post_date) en 0.09 tiempo de consulta total. Parece que usar AÑO (post_date) sería bueno tanto para el rendimiento como para la usabilidad.
Y he aprendido eso mientras búsquedas; si las horas o minutos no son tan importantes, ENTRE podría ser utilizado como esto:
SELECT post_id FROM posts
WHERE post_date BETWEEN '2010-01-01' AND '2010-12-31'
¿por qué no lo comparas tú mismo? – dbemerlin
Advertencia: 'BETWEEN '2010-01-01' AND '2010-12-31'' hace algo * levemente * sorprendente: no incluye el último día, ya que está internamente expandido a' BETWEEN '2010-01-01 00 : 00: 00 'Y' 2010-12-31 00: 00: 00'' – Piskvor
@dbemerlin: Porque entonces otros (como yo) pueden venir y ver las respuestas y los resultados de los demás. –