首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MYSQL 数据库时间字段 INT,TIMESTAMP,DATETIME 性能效率比较

原文 | http://1t.click/FAB 在数据库设计的时候,我们经常会需要设计时间字段, MYSQL 中,时间字段可以使用 int、timestamp、datetime 三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高...=1, `d_int` int(11) NOT NULL DEFAULT '0', `d_timestamp` timestamp NULL DEFAULT NULL, `d_datetime...>400000 AND d_int<600000 查询花费 0.0780 秒 SELECT SQL_NO_CACHE count(id) FROM `datetime_test` WHERE d_int...d_timestamp)>400000 AND UNIX_TIMESTAMP(d_timestamp)<600000 查询花费 0.2944 秒 对于 timestamp 类型,有了索引,反倒不建议使用 MYSQL...d_datetime)>400000 AND UNIX_TIMESTAMP(d_datetime)<600000 查询花费 0.9994 秒 对于 datetime 类型,同样有了索引,反倒不建议使用 MYSQL

7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQLint (10) 和 int (11) 的区别

    mysql 中整数数据类型 不同类型的取值范围 不同数据类型的默认显示宽度 显示的宽度跟负号没有关系,它只人工设置了 ZEROFILL 属性有效。...同理,所以 int (10) 和 int (11) 无任何区别,就是显示宽度不同。...存储方面确实没什么不同,设置长度只有设置了自动填充 ZEROFILL 的时候才体现出来, 比如 id=1 长度为 int (5) 的话会显示 00001。...Mysql 可以为整数类型指定宽度,例如 INT (11),对大多数应用这是没有意义的:他不会限制值的合法范围,只是规定了 Mysql 的一些交互工具,如 Mysql 命令行客户端,用来显示字符的个数。...对于存储和运算来说, INT (1) 和 INT (8) 是相同的。 是的,设置自动填充的时候用来显示补充0有点 用而已

    1.8K30

    聊聊Mysql中的int(1)

    昨天有个读者问了我这样一个问题在mysql中建表的时候,我设置一个字段为int类型,长度为1,但是我发现这个字段却可以存储任意长度的数字,这是什么情况?...这个问题在我刚接触数据库的时候也遇到过,我觉得有必要写一篇文章来解释一下。 0 和 1 是计算机最基本的存储单位。也是 CPU 采用的最基本的计算单位,也就是二进制。...int 类型占 4 个字节,一个字节是 8 位,也就是说 int 类型计算机底层是由 32 个 0 跟 1 表示,转化为十进制就是 2 的 32 次方,那么存储范围就是 0~2^32 ,如果带符号位的话就是...mysql对于整型的数据类型,不仅给我们提供了int,还提供了tinyint,smallint,mediumint和bigint。...再来聊一聊一个常见的面试题:int类型做自增主键有没有可能存储完? 肯定是有的,都有数据范围了,主键一直增长肯定有可能会达到这个范围。 很多小伙伴是不是心中飘过一万匹草泥马,忙着修改数据库去了。

    1.9K20

    mysqlint长度的意义

    提问: mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大?...回答: 不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数。 如果你的答案和上面的一致,恭喜你和我犯了一样的错误。...发现,无论是int(3), int(6), 都可以显示6位以上的整数。但是,当数字不足3位或6位时,前面会用0补齐。...查下手册,解释是这样的: MySQL还支持选择该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...显示宽度并不限制可以列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

    3.9K10

    MySqlint(10)与int(11)有什么区别吗?

    最后查出的结果是:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储 3个长度的数字,int(11)就会存储 11 个长度的数字,这是大错特错的。...int(10)也可以代表 2147483647 这个值int(11)也可以代表。 要查看出不同效果记得创建类型的时候加 zerofill这个值,表示用 0 填充,否则看不出效果的。...我们通常在创建数据库的时候都不会加入这个选项,所以可以说他们之间是没有区别的。...显示宽度并不限制可以列内保存的值的范围,也不限制超过列的指定宽度的值的显示。 当结合可选扩展属性 ZEROFILL 使用时, 默认补充的空格用零代替。...0 3 总结 所以,int(2) 与int(11)后的括号中的字符表示显示宽度,整数列的显示宽度与 MySQL 需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,int类型的字段能存储的数据上限依旧是

    4.3K30

    pythonmysql数据库中存取emoji😀

    emoji就是我们聊天的时候的特殊表情, 是特殊字符(非字符串), unicode编码起始为 1F600 , 占用4个字节, 不同的终端显示可能不同,但是都是表示的同一个对象.比如 "草莓" 这个表情, 浏览器上效果如下但是微信上效果如下图片在...mysql workbench上效果如下(作为字符)图片emoji完整表情可以查看: https://unicode.org/emoji/charts/full-emoji-list.htmlpython...cat)print(type(strawberry), type(cat))print(strawberry.encode(), cat.encode())图片发现emoji是字符串类型, 编码是4字节.mysql...中存取emoji存通过上面发现emoji是字符串(这跟python语言有关, 实际上是字符), 占用4个字节, 所以得使用 utf8mb4 字符集(mysql低版本默认为utf8mb3)mysql建表如下...CREATE TABLE `t20221125_emoji` ( `id` int(11) NOT NULL AUTO_INCREMENT, `emoji_char` varchar(1) DEFAULT

    3.7K50

    MySQLMySQL 中的 int(11) 到底代表什么意思?

    一、前言   在工作中经常要与 mysql 打交道,但是对 mysql 的各个字段类型一直都是一知半解,因此写本文总结记录一番。 二、简介 ?   ...对于 int 类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的 int(11) 代表什么意思,很长时间以来我都以为这代表着限制 int 的长度为 11 位,直到有天看到篇文章才明白,11...代表的并不是长度,而是字符的显示宽度,字段类型为 int 时,无论你显示宽度设置为多少,int 类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段。   ...首先创建一张表: CREATE TABLE int_demo (     id INT(11) NOT NULL AUTO_INCREMENT,     a INT(11) NOT NULL,     ...(5),但是仍然可以存储 1234567890 这个 10 位数字;   3、设置的字符宽度只对数值长度不满足宽度时有效,如 d 字段 int(5),插入 1 时,长度不足 5,因此左边补充 4 个零直到

    3.2K20
    领券