java_66666 2018-08-29 07:51 采纳率: 0%
浏览 5713
已结题

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性能上哪种会比较好

  • 写回答

5条回答 默认 最新

  • qq_38535182 2018-08-29 07:56
    关注

    建议你用timestamp就行了,如果你需要利用timestamp进行范围查询,可以在该列添加索引。

    至于性能上哪种会比较好,我没有试过,以下是我推测给的建议:因为实际上mysql内部存储日期实际上就是整数,仅仅是表现形式不太一样,timestamp更易读,所以,我不认为这二者性能会有多大差距。如果可以,你可以造几十万条数据来测试一下我的猜测。测试时注意查询缓存的影响。

    https://www.roncoo.com/course/list.html?courseName=mysql

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog