Comment créer un index sur la partie de la date de champ DATETIME dans MySql

Comment puis-je créer un index sur la partie de la date de champ DATETIME?

mysql> SHOW COLUMNS FROM transactionlist;
+-------------------+------------------+------+-----+---------+----------------+
| Field             | Type             | Null | Key | Default | Extra          |
+-------------------+------------------+------+-----+---------+----------------+
| TransactionNumber | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| WagerId           | int(11)          | YES  | MUL | 0       |                |
| TranNum           | int(11)          | YES  | MUL | 0       |                |
| TranDateTime      | datetime         | NO   |     | NULL    |                |
| Amount            | double           | YES  |     | 0       |                |
| Action            | smallint(6)      | YES  |     | 0       |                |
| Uid               | int(11)          | YES  |     | 1       |                |
| AuthId            | int(11)          | YES  |     | 1       |                |
+-------------------+------------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)

TranDateTime est utilisé pour enregistrer la date et l'heure de la transaction, comme il arrive

Mon Tableau comporte plus de 1 000 000 enregistrements dans il et la déclaration

SELECT * FROM transactionlist where date(TranDateTime) = '2008-08-17' 

prend beaucoup de temps.

EDIT:

Ont un coup d'oeil à cet article de blog sur "Pourquoi MySQL DATETIME peut et doit être évitée"

  • avertissement commentaire pour le lien que vous avez suggéré un coup d'oeil: Le message est écrit avec une telle excitation et la rage qu'il a presque frontières sur le point de puérilité. Et l'écrivain n'est pas de battre en arrière toute critique , tout en mentionnant qu'il se tient derrière ce qu'il a dit , mais son point de chute élancée avec de chaque. Mais encore , n'est pas une perte de temps, si vous lisez les commentaires.