关于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 自定义变量的概念及特点
May 13 MySQL
MySQL主从搭建(多主一从)的实现思路与步骤
May 13 MySQL
MySQL注入基础练习
May 30 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
浅谈如何保证Mysql主从一致
Mar 13 MySQL
mysql中DCL常用的用户和权限控制
Mar 31 MySQL
Mysql调整优化之四种分区方式以及组合分区
Apr 13 MySQL
MySQL索引 高效获取数据的数据结构
May 02 MySQL
MYSQL中文乱码问题的解决方案
Jun 14 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去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php生成动态验证码gif图片
2015/10/19 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
Ruffy javascript 学习笔记
2009/11/30 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
python入门前的第一课 python怎样入门
2018/03/06 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
如何使用Python 打印各种三角形
2019/06/28 Python
Python使用贪婪算法解决问题
2019/10/22 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
国际经济贸易专业推荐信
2013/11/06 职场文书
中层干部岗位职责
2013/12/18 职场文书
仓库主管岗位职责
2014/03/02 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
贷款担保书范本
2015/09/22 职场文书
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js