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

Времево клеймо като вътрешно поле, изпълнение на заявката

Използвайте UNIX_TIMESTAMP на константата вместо FROM_UNIXTIME на колоната:

SELECT * FROM table
WHERE timestamp_field
   BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
       AND UNIX_TIMESTAMP('2010-04-14 23:59:59')

Това може да бъде по-бързо, защото позволява на базата данни да използва индекс на колоната timestamp_field , ако съществува такъв. Не е възможно базата данни да използва индекса, когато използвате неsargable функция като FROM_UNIXTIME в колоната.

Ако нямате индекс на timestamp_field след това добавете един.

След като направите това, можете също да опитате да подобрите допълнително производителността, като изберете колоните, от които се нуждаете, вместо да използвате SELECT * .



  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_query връща само тип низ за тип int/fload db

  2. Изгубени в дати и часови зони

  3. Откриване на спамъри с MySQL

  4. Приоритет на транзакцията?

  5. MySQL код за конвертиране на дата и час в Excel