关于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 表空间碎片的概念及相关问题解决
May 07 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
Mysql 用户权限管理实现
May 25 MySQL
MySQL8.0无法启动3534的解决方法
Jun 03 MySQL
MySQL为id选择合适的数据类型
Jun 07 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
MySQL中的引号和反引号的区别与用法详解
Oct 24 MySQL
解析MySQL索引的作用
Mar 03 MySQL
mysql查看表结构的三种方法总结
Jul 07 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 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
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
关于尾递归的使用详解
2013/05/02 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
thinkphp缓存技术详解
2014/12/09 PHP
基于php编程规范(详解)
2017/08/17 PHP
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
python DataFrame 取差集实例
2019/01/30 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
python super的使用方法及实例详解
2019/09/25 Python
Django缓存Cache使用详解
2020/11/30 Python
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
幼儿园区域活动总结
2014/05/08 职场文书
教育合作协议范本
2014/10/17 职场文书
2014年班主任工作总结
2014/11/08 职场文书
2014年采购工作总结
2014/11/20 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
python前后端自定义分页器
2022/04/13 Python