关于mysql中时间日期类型和字符串类型的选择


Posted in MySQL onNovember 27, 2021

一、DATETIME、TIMESTAMP 的用法

MySQL中有多种表示时间日期的数据类型,主要有YEAR、TIME、DATE、DATETIME、TIMESTAMP等

关于mysql中时间日期类型和字符串类型的选择

1、相同点

datetime和timestamp都可以表示 YYYY-MM-DDHH:MM:SS 这种年月日时分秒格式的数据。

2、不同点

datetime存储与时区无关(准备来说是datetime只支持一个时区,就是存储时当前服务器的时区),而timestamp存储的是与时区有关。

 

datetime、timestamp精确度都是秒,datetime与时区无关,存储的范围广(1001-9999),timestamp与时区有关,存储的范围小(1970-2038)。

3、选择

TIMESTAMP和DATETIME除了存储范围和存储方式不一样,没有太大区别。当然,对于跨时区的业务,TIMESTAMP更为合适。

二、varchar 和 text 数据类型的用法

mysql在存储字符串时,可以使用char、varchar或者text类型

1、相同点

varchar 和 text 都可以存储变长字符串且字符串长度上限为65535字节

2、不同点

varchar 速度快,不存在空间浪费,不处理尾部空格,上限为65535字节,但是有存储长度实际65532字节最大可用。255字节以下用1字节存储长度,255字节以上用2字节存储长度。 text,存变长大数据,速度慢,不存在空间浪费,不处理尾部空格,上限65535字节,会用额外空间存放数据长度,顾可以全部使用65535字节。

 

不能在TEXT列上放置索引(全文索引除外),对于text来说,只能添加前缀索引,并且前缀索引最大只能达到1000字节

text没有默认值

 

当varchar大于某些数值的时候,其会自动转换为text,大概规则如下:

大于varchar(255)变为 tinytext

大于varchar(500)变为 text

大于varchar(20000)变为 mediumtext

3、选择

1、经常变化的字段用varchar;

2、知道固定长度的用char;

3、超过255字节的只能用varchar或者text;

4、能用varchar的地方不用text;

5、能够用数字类型的字段尽量选择数字类型而不用字符串类型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了;

6、存储引擎对于选择 CHAR 和VARCHAR 的影响:

对于MyISAM 存储引擎,最好使用固定长度的数据列代替可变长度的数据列。这样可以使整个表静态化,从而使数据检索更快,用空间换时间。对于InnoDB存储引擎,最好使用可变长度的数据列,因为 InnoDB 数据表的存储格式不分固定长度和可变长度,因此使用CHAR 不一定比使用 VARCHAR 更好,但由于 VARCHAR 是按照实际的长度存储,比较节省空间,所以对磁盘 I/O 和数据存储总量比较好。

到此这篇关于关于mysql中时间日期类型和字符串类型的选择的文章就介绍到这了,更多相关mysql时间日期类型和字符串类型选择内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
多属性、多分类MySQL模式设计
Apr 05 MySQL
MySQL数据迁移相关总结
Apr 29 MySQL
MySQL时间设置注意事项的深入总结
May 06 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
MySQL系列之三 基础篇
Jul 02 MySQL
MySQL中varchar和char类型的区别
Nov 17 MySQL
MySQL多表查询机制
Mar 17 MySQL
一条 SQL 语句执行过程
Mar 17 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
mysql 子查询的使用
Apr 28 MySQL
mysql sock文件存储了什么信息
Jul 15 MySQL
VS2019连接MySQL数据库的过程及常见问题总结
Linux7.6二进制安装Mysql8.0.27详细操作步骤
SQL优化老出错,那是你没弄明白MySQL解释计划用法
Nov 27 #MySQL
mysql timestamp比较查询遇到的坑及解决
Nov 27 #MySQL
分享mysql的current_timestamp小坑及解决
Nov 27 #MySQL
MySQL中CURRENT_TIMESTAMP的使用方式
Nov 27 #MySQL
MySQL Innodb索引机制详细介绍
Nov 23 #MySQL
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
详细讲解JS节点知识
2010/01/31 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python正则分析nginx的访问日志
2017/01/17 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
python如何安装下载后的模块
2020/07/03 Python
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
土木工程师岗位职责
2013/11/24 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
招商引资工作汇报
2014/10/28 职场文书
个人借款协议书范本
2014/11/17 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
会议室管理制度范本
2015/08/06 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python