Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-ce une bonne idée d'indexer le champ datetime dans mysql ?

MySQL recommande d'utiliser des index pour diverses raisons, y compris l'élimination des lignes entre les conditions :http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Cela fait de votre colonne datetime un excellent candidat pour un index si vous comptez l'utiliser fréquemment dans des requêtes. Si votre seule condition est BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) et que vous n'avez pas d'autre index dans la condition, MySQL devra effectuer une analyse complète de la table sur chaque requête. Je ne sais pas combien de lignes sont générées en 30 jours, mais tant qu'il s'agit de moins d'environ 1/3 du nombre total de lignes, il sera plus efficace d'utiliser un index sur la colonne.

Votre question sur la création d'une base de données efficace est très vaste. Je dirais simplement de s'assurer qu'il est normalisé et que toutes les colonnes appropriées sont indexées (c'est-à-dire celles utilisées dans les jointures et les clauses where).