mysql 中int(10),char(10),varchar(10)的区别
Posted 小布丁value
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 中int(10),char(10),varchar(10)的区别相关的知识,希望对你有一定的参考价值。
mysql 中int(10),char(10),varchar(10)的区别
1. 含义
1.首先int(10)的10表示显示的数据的长度,不是存储数据的大小;
2.而chart(10)和varchar(10)的10表示存储数据的大小,即表示存储多少个字符。
2.长度
char(10) 10位固定字符串,不足补空格 最多10个字符
varchar(10) 10位可变字符串,不补空格 最多10个字符
char(10)和varchar(10) 也是有区别的,char(10)表示存储定长的10个字符,不足10个就用空格补齐,占用更多的存储空间。
而varchar(10)
表示存储10个变长的字符,存储多少个就是多少个,空格
也按一个字符存储
这一点是和char(10)
的空格不同的,char(10)的空格
表示占位不算
一个字符。
3.速度
char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
4.存储方式
1.char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;
2.而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
参考文献:
https://blog.csdn.net/weixin_33610842/article/details/113203649?
以上是关于mysql 中int(10),char(10),varchar(10)的区别的主要内容,如果未能解决你的问题,请参考以下文章
一次事故,我对MySQL时间戳存char(10)还是int(10)有了全新的认识
一次事故,我对MySQL时间戳存char(10)还是int(10)有了全新的认识
一次线上事故,让我对MySql的时间戳存char(10)还是int(10)有了全新的认识