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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Mysql5.6之后的timestamp底层是用什么存储的?
    22
    0

    发现了mysql5.6版本之后timestamp的一个有趣问题,具体如下:

    mysql> desc test_idx;
    +--------+--------------+------+-----+---------+----------------+
    | Field  | Type         | Null | Key | Default | Extra          |
    +--------+--------------+------+-----+---------+----------------+
    | id     | int(11)      | NO   | PRI | NULL    | auto_increment |
    | name   | varchar(255) | NO   |     | NULL    |                |
    | sid    | int(11)      | NO   | UNI | NULL    |                |
    | time_1 | timestamp(6) | YES  |     | NULL    |                |
    | time_2 | timestamp(2) | YES  |     | NULL    |                |
    | time_3 | timestamp(4) | YES  |     | NULL    |                |
    | time_4 | timestamp    | YES  |     | NULL    |                |
    +--------+--------------+------+-----+---------+----------------+
    7 rows in set (0.00 sec)
    
    mysql> select * from test_idx;
    +----+------+-----+----------------------------+------------------------+--------------------------+---------------------+
    | id | name | sid | time_1                     | time_2                 | time_3                   | time_4              |
    +----+------+-----+----------------------------+------------------------+--------------------------+---------------------+
    |  2 | zhao |   1 | 2018-09-20 20:39:59.000000 | 2018-09-20 20:40:05.00 | 2018-09-20 20:40:09.0000 | 2018-09-20 20:40:55 |
    +----+------+-----+----------------------------+------------------------+--------------------------+---------------------+
    1 row in set (0.00 sec)

    问题描述:当建表的时候指定了timestamp的长度(最大为6)的时候,timestamp是可以保持小数后6位的,这6位小数按照官方文档描述是微秒单位。

    疑问:是不是说5.6之后timestamp是精确到微秒的,再有timestamp占4个字节,那么底层是怎么存储这6位小数的呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部