关于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 06 MySQL
MySQL 数据丢失排查案例
May 08 MySQL
新手必备之MySQL msi版本下载安装图文详细教程
May 21 MySQL
MySQL系列之十一 日志记录
Jul 02 MySQL
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
一文带你探究MySQL中的NULL
Nov 11 MySQL
MySQL数据库索引的最左匹配原则
Nov 20 MySQL
MySQL读取JSON转换的方式
Mar 18 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
数据设计之权限的实现
Aug 05 MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 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
phpMyAdmin 安装及问题总结
2009/05/28 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
PHP函数超时处理方法
2016/02/14 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
微信小程序录音与播放录音功能
2017/12/25 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
理理Vue细节(推荐)
2019/04/16 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
详解rem 适配布局
2018/10/31 HTML / CSS
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
求职自我评价范文100字
2014/09/23 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
Python绘画好看的星空图
2022/03/17 Python