网站首页 > 博客文章 正文
#来点儿干货#?新公司有很多表的日期格式是Long类型数值,排查问题一眼望去有点想骂娘啊,数值真的就比其他类型性能更高么?
在MySQL中保存日期和时间,通常有三种数据类型可供选择:DATETIME、TIMESTAMP和数值时间戳(通常是以整数形式的UNIX时间戳)。
选择哪种类型取决于具体的应用场景和需求。下面是关于这三种类型的对比分析:
DATETIME
- 存储范围:'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。
- 存储格式:以YYYY-MM-DD HH:MM:SS的格式存储,不包含时区信息。
- 存储长度:8字节。
- 应用场景:当你需要保存的日期和时间不依赖于时区,或者你想自己控制时区转换时。比如,出生日期、历史事件日期等。
TIMESTAMP
- 存储范围:'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC。
- 存储格式:以UTC格式存储,并在检索时转换为当前时区的时间。
- 存储长度:4字节。
- 特别之处:TIMESTAMP类型的字段会根据数据库服务器的时区设置自动转换为存储时的时区,检索时转换回当前的时区。
- 应用场景:适用于需要考虑时区的应用,或者记录数据的创建和修改时间。比如,用户的最后登录时间、记录的创建和更新时间戳等。
数值时间戳(UNIX时间戳)
- 存储范围:通常表示为自'1970-01-01 00:00:00' UTC以来的秒数,取决于所使用的整数类型。
- 存储格式:整数。
- 存储长度:取决于整数类型,INT为4字节(足以存储到2038年),BIGINT为8字节(可存储到很远的未来)。
- 应用场景:当你需要与其他系统交互,或者进行日期时间的高效计算时。比如,系统间同步、日志记录等。
性能
- 索引和查询:TIMESTAMP和数值时间戳通常在索引和查询上更快,因为它们占用的存储空间更小,检索时转换计算量也较小。
- 比较和计算:数值时间戳在进行日期时间的计算和比较时通常更高效,因为它们是简单的整数运算。
- 存储效率:TIMESTAMP类型占用的空间最少,因此在存储效率上更高。
存储长度差异
- DATETIME:8字节。
- TIMESTAMP:4字节。
- 数值时间戳:4字节(INT),8字节(BIGINT)。
结论
选择哪种日期时间类型取决于:
- 你是否需要考虑时区(TIMESTAMP)。
- 你是否需要存储超出TIMESTAMP范围的日期(DATETIME)。
- 你是否需要与其他系统交互或进行高效的日期时间计算(数值时间戳)。
- 你的存储空间是否有限制(TIMESTAMP相对更节省空间)。
- 上一篇: 一个时间戳精度问题,引发了一个MySQL血案
- 下一篇: MySQL的10种常用数据类型
猜你喜欢
- 2024-12-06 超详细canal入门,看这篇就够了
- 2024-12-06 MySQL专题1: 字段和索引
- 2024-12-06 这些MySQL面试题集锦,据说知名互联网公司都用
- 2024-12-06 mysql数据库一天五万条以上的增量,预计运维三年,怎么优化
- 2024-12-06 Mysql时间格式转化——DATE_FORMAT()
- 2024-12-06 RPA数据库功能应用及时间戳获取
- 2024-12-06 Mysql日期函数、时间函数的实际应用
- 2024-12-06 MySQL时间、字符串、戳的转换
- 2024-12-06 MySQL系列-第2篇:MySQL中数据类型介绍
- 2024-12-06 Mysql:TIMESTAMP、DATETIME、BIGINT。该如何选择?
你 发表评论:
欢迎- 最近发表
-
- 比GoPro 13更强的大疆Action 5 Pro,到底强在哪里?
- 信号和槽(信号和槽的实现原理)
- 在响应式项目中连接设计与开发(请简述实现响应式设计包括哪些技术点)
- 【C#】委托、Action、Func 和 Event 之间的关系
- 如何使用JavaScript实现Prompt弹窗?
- 谷歌Magic Actions功能曝光:AI革新安卓16通知交互
- 基于目标TPS的性能测试,如何通过手动设置场景进行测试?
- IOS基础学习之输出口和动作(io口输入输出实验总结及体会)
- 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- Android学习之Touch事件的处理(android触摸事件实例)
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)