tipo por insertar filtrar fechas fecha entre diferencia dato comparar sql mysql performance timestamp

por - ¿Cuánto más rápido es la marca de tiempo que la columna de fecha y hora en MySQL?



tipo de dato time mysql (2)

Esto consiste en dos preguntas:

  1. ¿Es el campo de marca de tiempo de MySQL realmente más rápido que el campo de fecha y hora en la consulta "ordenar por"?

  2. Si la respuesta a la pregunta anterior es sí, ¿cuánto más rápido podría ser? Supuesto en una tabla de 100 millones de filas y con frecuencia ordenando un montón de filas 100-200k en base al campo de marca de tiempo dentro de MySQL, ¿se compensará la mejora del tiempo de clasificación convirtiendo la marca de tiempo en un formato de cadena legible en un programa externo?


La forma más fácil de averiguarlo es escribir una prueba unitaria y obtener algunos números.

Mi teoría era que la marca de tiempo sería más rápida, pero de acuerdo con este blog estoy equivocado: http://dbscience.blogspot.com/2008/08/can-timestamp-be-slower-than-datetime.html

Esta es la razón por la que tiendo a obtener números, mediante el uso de perfiles, antes de decidir dónde optimizar, ya que a veces mi intuición puede ser bastante incorrecta.

Por lo tanto, puede depender de la versión de MySQL que esté utilizando, pero parece que datetime puede ser más rápido.


Por lo que puedo decir, la principal ventaja de utilizar TIMESTAMP durante DATETIME es poder establecer automáticamente un valor para la hora actual en la creación de filas y poder establecerlo (u otra columna con un poco de esfuerzo) a la hora actual en la fila actualizar. Esto permite una fecha automática creada y modificada.

Debido a las otras limitaciones en la columna TIMESTAMP (por ejemplo, no aceptar fechas fuera de un cierto rango o cambiar si cambia la zona horaria del servidor), DATETIME será preferible si no necesita una de las dos características desde arriba.

Sin embargo, si simplemente está interesado en almacenar una marca de tiempo de Unix en la base de datos y no necesita que la base de datos la convierta nunca, probablemente podría almacenarla como un entero sin firmar directamente y lograr un leve rendimiento.