关于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 28 MySQL
分析MySQL抛出异常的几种常见解决方式
May 18 MySQL
my.ini优化mysql数据库性能的十个参数(推荐)
May 26 MySQL
Mysql数据库索引面试题(程序员基础技能)
May 31 MySQL
MySQL一些常用高级SQL语句
Jul 03 MySQL
使用ORM新增数据在Mysql中的操作步骤
Jul 26 MySQL
MySQL配置主从服务器(一主多从)
Aug 07 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
一次MySQL启动导致的事故实战记录
Sep 15 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
Mysql超详细讲解死锁问题的理解
Apr 01 MySQL
Mysql索引失效 数据库表中有索引还是查询很慢
May 15 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
域名查询代码公布
2006/10/09 PHP
Phpbean路由转发的php代码
2008/01/10 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
图片之间的切换
2006/06/26 Javascript
一页面多XMLHttpRequest对象
2007/01/22 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
国家助学金获奖感言
2014/01/31 职场文书
20年同学聚会邀请函
2014/02/04 职场文书
建筑投标担保书
2014/05/20 职场文书
合同和协议有什么区别?
2014/10/08 职场文书