¿Cómo creo un índice en la parte de la fecha del campo DATETIME?¿Cómo se crea un índice en la parte de la fecha del campo DATETIME en MySql
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 se utiliza para guardar la fecha y hora de la transacción como ocurre
Mi tabla tiene más de 1.000.000 de registros en el mismo y la declaración
SELECT * FROM transactionlist where date(TranDateTime) = '2008-08-17'
lleva mucho tiempo.
EDIT:
Tener un vistazo a esta entrada del blog sobre "Why MySQL’s DATETIME can and should be avoided"
advertencia comentario para el enlace que sugirió una mirada: La publicación está escrita con tal emoción y rabia que casi roza el punto de infantilismo. Y el escritor no está rechazando ninguna crítica, mientras sigue mencionando que está detrás de lo que dijo, pero su punto es cada vez menor. Pero aún así, no es una pérdida de tiempo, si lees los comentarios. – kommradHomer