复制代码
为懒人提供无限可能,生命不息,code不止
人类感性的情绪,让我们知难行难
首页
前端
后台
数据库
运维
资源下载
实用工具
登录
注册
mysql
【原创】mysql中时间字段类型datetime,varchar,bigin对比及应用场景想法
作者: whooyun
发表于:
2023-10-16 17:30
在MySQL中,create_time字段的设计取决于您需要存储的数据类型和要执行的操作。以下是create_time字段设计为bigint类型、datetime类型和varchar类型的利弊:
bigint类型:
利:可以将时间戳以整数的形式存储,占用空间较小,处理和查询效率相对较高。
弊:如果您需要进行日期和时间相关的操作(例如,计算两个时间之间的差异),则需要自己编写额外的逻辑,这会增加应用程序的复杂性。
datetime类型:
利:可以存储具体的日期和时间信息,方便进行日期和时间相关的操作,如筛选、排序和计算时间差。MySQL提供了许多内置的日期和时间函数,可以轻松地处理这种类型的数据。
弊:相比bigint类型,datetime类型可能会占用更多的存储空间,并且在处理和查询效率上可能稍微慢一些。
varchar类型:
利:可以以字符串的形式存储日期和时间信息,与其他数据类型的兼容性较好,可以使用各种编程语言和库来解析和处理这种类型的数据。
弊:相比bigint类型和datetime类型,varchar类型需要更多的存储空间,处理和查询效率也较低。此外,如果您需要在应用程序中执行日期和时间相关的操作,您需要自己编写逻辑来解析和处理这些字符串。
综上所述,选择哪种类型取决于您的需求。如果您需要存储精确的日期和时间信息,并且希望使用MySQL的日期和时间函数进行操作,那么datetime类型是最佳选择。如果您只需要存储时间戳,并且希望减小存储空间和提升处理效率的影响,那么bigint类型是不错的选择。如果您需要与其他数据类型兼容,或者需要在应用程序中自己处理日期和时间,那么varchar类型可能是合适的选择。
个人看法:
个人会比较喜欢使用datetime类型,因为更适合项目维护,比如数据问题时需要查数据库,可以直接在Navicat中看到时间,能即见即所得,快速排查,定位问题;现有服务器的磁盘,cpu都比较便宜,感觉没必要过分计较。
时间系统或者日志系统其实是比较适合使用bigint,就因为数据量极大,所以性能是第一考虑优先级。
以前和多语言系统(易语言,go,lua)对接过,对接方各种语言处理时间格式非常不方便,所以有的时候方便别人就是方便自己。