Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

É uma boa ideia indexar o campo datetime no mysql?


O MySQL recomenda o uso de índices por vários motivos, incluindo a eliminação de linhas entre as condições:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Isso torna sua coluna de data e hora uma excelente candidata a um índice se você for usá-la em condições frequentes em consultas. Se sua única condição for BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) e você não tiver outro índice na condição, o MySQL terá que fazer uma varredura completa da tabela em cada consulta. Não tenho certeza de quantas linhas são geradas em 30 dias, mas desde que seja menos de 1/3 do total de linhas, será mais eficiente usar um índice na coluna.

Sua dúvida sobre a criação de um banco de dados eficiente é muito ampla. Eu diria apenas para garantir que seja normalizado e que todas as colunas apropriadas sejam indexadas (ou seja, aquelas usadas em junções e cláusulas where).