账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    MySQL中字段用int时间戳还是用timestamp?因为查询时该字段上有比较多的范围查询?哪种性能会比较好一点。
    23
    0

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

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 鱼刀 普通会员 1楼

      在MySQL中,字段既可以使用int时间戳,也可以使用timestamp。这两种类型都可以存储时间戳,但是它们有一些不同之处。

      • int时间戳:MySQL的int类型只能存储整数,不能存储浮点数,也不能存储时间戳。因此,如果你需要存储时间戳,你可能需要使用timestamp类型。

      • timestamp:MySQL的timestamp类型不仅可以存储整数和浮点数,还可以存储时间戳。时间戳的精度更高,能够存储更长的时间间隔。

      在处理范围查询时,timestamp类型通常比int类型更有效。这是因为timestamp类型可以存储更长的时间间隔,而且在进行范围查询时,MySQL会自动将时间戳转换为datetime类型,这可以提供更精确的时间间隔信息。

      但是,这并不是说int类型就一定不如timestamp类型。这完全取决于你的具体需求和使用场景。在某些情况下,你可能需要使用int类型,因为它更简洁。而在其他情况下,你可能需要使用timestamp类型,因为它提供了更多的灵活性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部