Combien de temps est l'horodatage que la colonne datetime dans MySQL?
Il est composé de deux questions:
- Est MySQL champ timestamp vraiment plus rapide que le champ datetime dans "order by de la requête"?
- Si la réponse à la question ci-dessus est oui, comment beaucoup plus rapide, il pourrait être? Admis dans un tableau de 100 millions de lignes et souvent trier un tas de 100-200k lignes basées sur l'horodatage champ à l'intérieur de MySQL, le temps de tri d'amélioration de l'être offseted par la conversion d'horodatage lisible format de chaîne de caractères en dehors du programme?
source d'informationauteur jack
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple de le savoir est d'écrire un test unitaire, et réellement obtenir quelques numéros.
Ma théorie est que le timestamp est plus rapide, mais selon ce blog, je me trompe:
http://dbscience.blogspot.com/2008/08/can-timestamp-be-slower-than-datetime.html
C'est pourquoi j'ai tendance à obtenir des numéros, par profilage, avant de me décider où pour optimiser, comme mon instinct peut être tout à fait faux à la fois.
Donc, cela peut dépendre de la version de MySQL que vous utilisez, mais il semble que datetime peut être plus rapide.
De ce que je peux dire, l'avantage majeur de l'utilisation de l'HORODATAGE sur DATETIME est d'être capable de définir automatiquement une valeur à l'heure actuelle sur la ligne de création et d'être capable de le définir (ou d'une autre colonne avec un peu d'effort) à l'heure actuelle sur la ligne de mise à jour. Cela permet une automatique créé et la date de modification.
Parce que les autres limitations sur la colonne TIMESTAMP (par exemple, de ne pas accepter des dates en dehors d'une certaine plage ou en changeant si le serveur modifications de fuseau horaire), DATETIME va être préférable si vous n'avez pas besoin de l'une des deux fonctions à partir de ci-dessus.
Toutefois, si vous êtes simplement intéressé par le stockage d'un timestamp dans la base de données et ne pas avoir besoin de la base de données de jamais de le convertir, vous pourriez probablement stocker comme un entier non signé directement et obtenir un peu de performance.