1. 问答
  2. 问答详情

MySQL中字段用int时间戳还是用timestamp?因为查询时该字段上有比较多的范围查询?哪种性能会比较好一点。

created_at列加索引的前提下。
表数据量千万级别。
explain显示扫描行数是二百万的级别
select count(*) from users where created_at<'2018-08-28 00:00:00' and created_at>='2018-08-01 00:00:00'
count大概是四五十万级的别。这种范围查询 created_at用int时间戳和timestamp性能上哪种会比较好

1个回答

0

采纳

https://dev.mysql.com/doc/ref...

MySQL converts TIMESTAMP values from the current time zone to UTC for storage, 

and back from UTC to the current time zone for retrieval.

TIMESTAMP 类型的这种转换操作,相较于 INT,可能使查询变慢。

为了可视化,在数据库中能够方便对看到数据时间,建议保存为datetime

撰写答案

验证码
点击刷新