sql >> Database >  >> RDS >> Mysql

Is het een goed idee om het datetime-veld in mysql te indexeren?

MySQL raadt het gebruik van indexen aan om verschillende redenen, waaronder het verwijderen van rijen tussen voorwaarden:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Dit maakt uw datetime-kolom een ​​uitstekende kandidaat voor een index als u deze vaak in zoekopdrachten onder omstandigheden gaat gebruiken. Als uw enige voorwaarde BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) is en je hebt geen andere index in de voorwaarde, MySQL zal een volledige tabelscan moeten doen op elke vraag. Ik weet niet zeker hoeveel rijen er in 30 dagen worden gegenereerd, maar zolang het minder dan ongeveer 1/3 van het totale aantal rijen is, is het efficiënter om een ​​index op de kolom te gebruiken.

Uw vraag over het creëren van een efficiënte database is erg breed. Ik zou zeggen om ervoor te zorgen dat het genormaliseerd is en dat alle relevante kolommen worden geïndexeerd (d.w.z. de kolommen die worden gebruikt in joins en waar-clausules).



  1. Waarom het gebruik van eenheidstests een geweldige investering is in hoogwaardige architectuur

  2. ActionScript Date-object maken van MySQL UTC-tijdstempeltekenreeks

  3. SELECT query retourneer 1 rij van elke groep

  4. Ontdek waarom een ​​e-mail niet kon worden verzonden in SQL Server (T-SQL)