Mysql
 sql >> база данни >  >> RDS >> Mysql

Дата и час срещу дата и час Mysql

Има огромна разлика в производителността при използване на поле DATE над поле DATETIME. Имам таблица с повече от 4 000 000 записа и за целите на тестването добавих 2 полета със собствен индекс. Едното използва DATETIME, а другото поле с DATE.

Деактивирах MySQL кеша на заявки, за да мога да тествам правилно и превъртях една и съща заявка за 1000x:

SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; DATETIME INDEX:197,564 секунди.

SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; ИНДЕКС НА ДАТАТА:107,577 секунди.

Използването на поле, индексирано по дата, има подобрение на производителността от:45,55%!!

Така че бих казал, че ако очаквате много данни във вашата таблица, моля, помислете за разделяне на датата от часа със собствен индекс.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да получа рекурсивно родителския идентификатор на редовете в тази MySQL таблица?

  2. sql ако в инструкция за вмъкване без select

  3. MYSQL заявка, използваща променлива като име на таблица в LEFT JOIN

  4. mysql съхранена процедура:изходен параметър

  5. Инсталиране на QMYSQL драйвер