Mysql
 sql >> Database >  >> RDS >> Mysql

È una buona idea indicizzare il campo datetime in mysql?

MySQL consiglia di utilizzare gli indici per una serie di motivi, inclusa l'eliminazione delle righe tra le condizioni:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Ciò rende la colonna datetime un ottimo candidato per un indice se la utilizzerai in condizioni frequenti nelle query. Se la tua unica condizione è BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) e non hai altri indici nella condizione, MySQL dovrà eseguire una scansione completa della tabella su ogni domanda. Non sono sicuro di quante righe vengono generate in 30 giorni, ma finché è inferiore a circa 1/3 delle righe totali, sarà più efficiente utilizzare un indice sulla colonna.

La tua domanda sulla creazione di un database efficiente è molto ampia. Direi solo di assicurarmi che sia normalizzato e che tutte le colonne appropriate siano indicizzate (ovvero quelle utilizzate nei join e nelle clausole where).