sql >> Databáze >  >> RDS >> Mysql

Datum a čas vs datum a čas Mysql

Při použití pole DATE nad polem DATETIME je obrovský rozdíl ve výkonu. Mám tabulku s více než 4 000 000 záznamy a pro testovací účely jsem přidal 2 pole s oběma vlastními indexy. Jedno pomocí DATETIME a druhé pole pomocí DATE.

Zakázal jsem mezipaměť dotazů MySQL, abych mohl správně testovat, a opakoval jsem stejný dotaz 1000x:

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

SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; DATE INDEX:107,577 sekund.

Použití pole indexovaného podle data má zlepšení výkonu o:45,55 %!!

Řekl bych tedy, že pokud očekáváte ve své tabulce mnoho dat, zvažte prosím oddělení data od času pomocí vlastního indexu.



  1. Chci přidat 30 dní do řádku data mysql

  2. MySQL:VYŽADOVAT SSL se v grantech nezobrazuje

  3. Doctrine2:Nelze vybrat entitu prostřednictvím identifikačních proměnných bez výběru alespoň jednoho aliasu kořenové entity

  4. Jak zobrazím aktivní připojení k serveru SQL?