关于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获取所有分类的前N条记录
May 07 MySQL
MySQL sql_mode的使用详解
May 08 MySQL
MySQL CHAR和VARCHAR该如何选择
May 31 MySQL
Mysql文件存储图文详解
Jun 01 MySQL
MySQL中的布尔值,怎么存储false或true
Jun 04 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
教你如何让spark sql写mysql的时候支持update操作
Feb 15 MySQL
分享几个简单MySQL优化小妙招
Mar 31 MySQL
进阶篇之linux环境下安装MySQL数据库
Apr 09 MySQL
Mysql开启外网访问
May 15 MySQL
MySQL的意向共享锁、意向排它锁和死锁
Jul 15 MySQL
MySQL下载安装配置详细教程 附下载资源
Sep 23 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 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vuex实现购物车功能
2020/06/28 Javascript
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
scrapy头部修改的方法详解
2020/12/06 Python
详解HTML5中div和section以及article的区别
2015/07/14 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
教师找工作推荐信
2013/11/23 职场文书
化工专业推荐信范文
2013/11/28 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
药店促销活动策划方案
2014/08/24 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
员工离职感谢信
2015/01/22 职场文书
继承权公证书范本
2015/01/23 职场文书
冰雪公主观后感
2015/06/16 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记