关于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之DML语言
Apr 05 MySQL
Navicat for MySQL的使用教程详解
May 27 MySQL
MySQL中的布尔值,怎么存储false或true
Jun 04 MySQL
探究Mysql模糊查询是否区分大小写
Jun 11 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
SQL注入篇学习之盲注/宽字节注入
Mar 03 MySQL
MySQL创建管理KEY分区
Apr 13 MySQL
Mysql排查分析慢sql之explain实战案例
Apr 19 MySQL
mysql 子查询的使用
Apr 28 MySQL
mysql5.5中文乱码问题解决的有用方法
May 30 MySQL
MySQL如何修改字段类型和字段长度
Jun 10 MySQL
MySQL索引失效十种场景与优化方案
May 08 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解析html的实现代码
2011/08/08 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP实现微信发红包程序
2015/08/24 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
原生和jQuery的ajax用法详解
2017/01/23 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
TensorFlow Session会话控制&Variable变量详解
2018/07/30 Python
python的concat等多种用法详解
2018/11/28 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
Django用户认证系统 User对象解析
2019/08/02 Python
Python装饰器用法与知识点小结
2020/03/09 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
中软Java笔试题
2012/11/11 面试题
初中教师业务学习材料
2014/05/12 职场文书
新员工入职欢迎词
2015/01/23 职场文书
MySQL派生表联表查询实战过程
2022/03/20 MySQL