高性能mysql(三)选择优化的数据类型

mysql支持的数据类型非常多,所以选择相应的数据类型对于获得高性能至关重要。

几个原则

a.更小通常更好。(因为占用更少的磁盘内存cpu)
b.简单更好(int比字符串更好)
c.避免null(null会占用更多的空间,也会使得索引复杂)

类型

a.整数类型

TINYINT 8位
SMALLINT 16位
MEDIUMINT 24位
INT 32位
BIGINT 64位

他们的范围是 -2(N-1)次方到2(N-1)次方。
INT(11)和INT(1)的范围是一样的

b.字符串

varchar变长 通常情况下会更节省空间,但是会有一到2个位置来存放字符的长度。在更新的时候会比较麻烦。

char适合存储固定长度的字符。

慷慨是不明智的能用varchar(3)的就不要用varchar(10)
在utf-8状态下的varchar,最大中文只能到 : 65535 - (4 + 4 + 2 + 1 + 5) - 2 = 65535 - 16 - 2 = 65517字节。

c.BLOB和TEXT

VARCHAR,BLOB 和TEXT类型是变长类型,对于其存储需求取决于列值的实际长度(在前面的表格中用L表示),而不是取决于类型的最大可能尺寸。例如,一个 VARCHAR(10)列能保存最大长度为10个字符的一个字符串,实际的存储需要是字符串的长度 ,加上1个字节以记录字符串的长度。对于字符串'abcd',L是4而存储要求是5个字节。
BLOB和TEXT类型需要1,2,3或4个字节来记录列值的长度,这取决于类型的最大可能长度。VARCHAR需要定义大小,有255的最大限制;TEXT则不需要。如果你把一个超过列类型最大长度的值赋给一个BLOB或TEXT列,值被截断以适合它。

CHAR(n) 固定长度,最多 255 个字符 
VARCHAR(n) 可变长度,MySQL 4.1 及以前最大 255 字符,MySQL 5 之后最大 65535 字节 
TINYTEXT 可变长度,最多 255 个字符 
TEXT 可变长度,最多 65535 个字符 
MEDIUMTEXT 可变长度,最多 16777215(2^24 - 1)个字符 
LONGTEXT 可变长度,最多 4294967295(2^32 - 1)(4G)个字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值