关于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 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
MySQL 分组查询的优化方法
May 12 MySQL
Mysql数据库命令大全
May 26 MySQL
MySQL开启事务的方式
Jun 26 MySQL
Mysql数据库按时间点恢复实战记录
Jun 30 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL千万级数据表的优化实战记录
Aug 04 MySQL
mysql函数全面总结
Nov 11 MySQL
MySQL高级进阶sql语句总结大全
Mar 16 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
MySQL表锁、行锁、排它锁及共享锁的使用详解
Apr 02 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
jQuery之折叠面板的深入解析
2013/06/19 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
django-csrf使用和禁用方式
2020/03/13 Python
Python如何安装第三方模块
2020/05/28 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
汽车专业毕业生自荐信
2013/11/03 职场文书
夜大毕业生自我评价分享
2013/11/10 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
小学教师国培感言
2014/02/08 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers
Java Redisson多策略注解限流
2022/09/23 Java/Android