MySql8中常用的六种数据类型:
整数类型
实数类型
字符串类型
日期和时间类型
位数类型
JSON类型
-
整数类型:INT(最常用),TINYINT(用于小数据,对应Byte)。
MySql 可以为整数类型指定宽度,例如INT(11)
-
实数类型:又叫小数类型,一般使用DECIMAL较多
注意:FLOAT和DOUBLE可表示的范围不是完全连续的浮点数,由于精度的限制,有些极小的小数是表示
不了的。(精度丢失)
涉及到金额计算,在数据量比较大的时候,可以考虑用BIGINT代替DECIMAL。
-
字符串类型:CHAR和VARCHAR使用最多
定长字符串:规定多少字节就多少字节,不能改动
边长字符串:根据字节的大小而改变,但不能超过自身的字节

CHAR类型时定长的,会根据定义的长度分配控件。当存储CHAR值时,MySQL会删除所有的末尾空格。
CHAR很适合存储很短的字符串,或者所有的值都接近同一个长度。对于经常变动的数据,CHAR也比VARCHAR更好,因为定长的CHAR类型不容易产生碎片。
对于非常短的列,CHAR比VARCHAR在存储空间上也更有优势,例如CHAR(1)来存储只有Y和N的值,如果采用单字节只需1个字节,但是VARCHAR(1)却需要2个字节,因为还需要一个记录长度的额外字节。
哪些情况使用VARCHAR类型比较合适呢?
字符串的列长度比平均长度打很多
列的更新很少,碎片不是问题
使用了像utf-8这样复杂的字符集,每个字符都使用了不同的字节数进行存储
4. 日期和时间类型 
- JSON类型:MySQL8支持直接存储到json格式字符串,对应的是json数据类型。
Json数据列会自动验证json的数据格式,如果格式不正确会报错。
最优化存储格式。Json数据类型会把json格式的字符串转换成内部格式,能够快速的读取其中的元素。
小结:更小的更好
简单就好
尽量避免null
本文介绍了MySQL8中的六种主要数据类型,包括整数(如INT, TINYINT)、实数(如DECIMAL, FLOAT, DOUBLE)、字符串(CHAR, VARCHAR)、日期和时间类型、位数类型以及新引入的JSON类型。讨论了不同类型的特点和适用场景,如DECIMAL用于高精度计算,VARCHAR适合存储变长字符串,而JSON类型提供了内置的格式验证和优化存储。强调了选择合适数据类型的重要性,如避免NULL和选择更小的类型以节省存储空间。
1462

被折叠的 条评论
为什么被折叠?



