MYSQL数据类型笔记2

MYSQL

1          CHARVARCHAR类型

1.1        类型概述:

CHARVARCHAR类型是类似的,但是在他们被存储和检索的方式不同

 

 

1.2        CHARVARCHAR具体的异同:

1.        当给定一个CHAR列的值时,其长度将被修正为在你创建表时所声明的长度。长度可以是1255之间的任何值。 当CHAR值被存储时,他们被用空格在右边填补到指定的长度。当CHAR值被检索时,拖后的空格被删去。

2.        VARCHAR列中的值是变长字符串。你可以声明一个VARCHAR列是在1255之间的任何长度,就像对CHAR列。然而,与CHAR类型相反,VARCHAR值只存储所需的字符,外加一个字节记录长度,值不被填补;相反,当值被存储时,拖后的空格被删去。(这个空格删除不同于ANSI SQL规范。)

3.        如果你把一个超过列最大长度的值赋给一个CHARVARCHAR列,值被截断以适合串类型

 

1.3        性能说明:

1.        行定长的表比行可变长的表容易处理,效率更高

2.        只有所有的类型是定长时,行才是定长的,才能提高性能

3.        有时为了节省存储空间,使用了变长类型,在这种情况下最好也将定长列转换为可变长列

 

1.4        转换说明与规则

1.        转换说明

如果表中有 VARCHAR 列,那么表中不可能同时有 CHAR 列;MySQL 会自动地将它们转换为 VARCHAR

 

2.        转换规则

l        长度小于4VARCHAR被改变为CHAR

l        如果在一个表中的任何列有可变长度,结果是整个行是变长的。因此, 如果一张表包含任何变长的列(VARCHARTEXTBLOB),所有大于3个字符的CHAR列被改变为VARCHAR

 

 

2.       BLOBTEXT类型

2.1        类型概述

1.       BLOB类型:

一个BLOB是一个能保存可变数量的数据的二进制的大对象。4BLOB类型TINYBLOBBLOBMEDIUMBLOBLONGBLOB仅仅在他们能保存值的最大长度方面有所不同。

2.       TEXT类型:

4TEXT类型TINYTEXTTEXTMEDIUMTEXTLONGTEXT对应于4BLOB类型,并且有同样的最大长度和存储需求。

 

2.2        BLOBTEXT具体的异同:

1.        BLOBTEXT类型之间的唯一差别是对BLOB值的排序和比较以大小写敏感方式执行,而对TEXT值是大小写不敏感的。换句话说,一个TEXT是一个大小写不敏感的BLOB

2.        在大多数方面,你可以认为一个TEXT行列是你所希望大的一个VARCHAR列。同样,你可以认为一个BLOB列是一个VARCHAR BINARY列。差别是:

l        MySQL版本 3.23.2 和更新,你能在BLOBTEXT列上索引。更旧的MySQL版本不支持这个。

l        当值被存储时,对BLOBTEXT列没有拖后空格的删除,因为对VARCHAR列有删除。

l        BLOBTEXT列不能有DEFAULT值。

 

2.3        类型注意说明:

1.        BLOBTEXT类型可以存储非常多的数据

2.        BLOB TEXT 列在 MySQL 3.23 以上版本中可以进行索引,虽然在索引时必须指定一个用于索引的约束尺寸,以免建立出很大的索引项从而抵消索引所带来的好处。

3.        由于 BLOB TEXT 值的大小变化很大,如果进行的删除和更新很多,则存储它们的表出现高碎片率会很高。应该定期地运行 OPTIMIZE TABLE 减少碎片率以保持良好的性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值