sql >> Database >  >> RDS >> Mysql

Hoe maak je een index op het datumgedeelte van het DATETIME-veld in MySql

Als ik het me goed herinner, zal dat een hele tabelscan uitvoeren omdat je de kolom door een functie laat gaan. MySQL zal de functie gehoorzaam uitvoeren voor elke kolom, waarbij de index wordt omzeild, aangezien de query-optimizer de resultaten van de functie niet echt kan kennen.

Wat ik zou doen is zoiets als:

SELECT * FROM transactionlist 
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';

Dat zou je alles moeten geven wat er op 17-08-2008 is gebeurd.



  1. PDO heeft statement fetch() voorbereid en geeft dubbele resultaten

  2. Aanmeldingsstroom in R12.2 en eenvoudige probleemoplossing

  3. Verzachtende indexfragmentatie

  4. Failover-opties voor multi-cloud volledige databasecluster voor MariaDB-cluster