sql >> Database >  >> RDS >> Mysql

Datumtijd versus datum en tijd Mysql

Er is een enorm prestatieverschil bij het gebruik van het DATE-veld boven het DATETIME-veld. Ik heb een tabel met meer dan 4.000.000 records en voor testdoeleinden heb ik 2 velden toegevoegd met beide hun eigen index. Een met DATETIME en het andere veld met DATE.

Ik heb de MySQL-querycache uitgeschakeld om goed te kunnen testen en heb dezelfde query 1000x doorgelust:

SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; DATETIME INDEX:197.564 seconden.

SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; DATUMINDEX:107.577 seconden.

Het gebruik van een datum-geïndexeerd veld heeft een prestatieverbetering van:45,55%!!

Dus ik zou zeggen dat als je veel gegevens in je tabel verwacht, overweeg dan om de datum van de tijd te scheiden met hun eigen index.



  1. Hoe een procentuele waarde op te slaan?

  2. ACOS() Voorbeelden in SQL Server

  3. Is er een manier om de autoincrement-ID op te halen uit een voorbereide instructie?

  4. Wanneer moet ik de mysqli (Database) verbinding sluiten?