mysql列宽设置_mysql 中字段类型与宽度的选择

注意:int字段设置宽度也可以设置到int最大容量

之前一直对于mysql的字段类型选择存在疑惑,int 与 tinyint , int(1) 与 tinyint(1) , varchar 与 char ,varchar(10) 与 char(10) ,分不清楚他们的区别.。

认为 char(10)可以存储10个字符 varchar (10) 也可以存储10个字符。那我为什么不直接使用varchar类型呢?那么存在char类型的意义又是什么呢?tinyint 可以存储 128到127(SIGNED),0到255(UNSIGNED) int也可以存储 那么多数字,甚至可以储存更大的数字,那么为什么不直接使用int 而采用 tinyint呢?

字段类型:因为数据库指定类型,在储存数据的时候就会占用不同大小的空间,TINYINT 占用 1个字节  INT 占用 4个字节 ,如果一个字段最大 128 如果采用int类型 那么数据库在储存 搜索 的时候就会比 TINYINT 类型多出三个字节的空间,数据量小的情况下影响不大,或者说无感,但是当数据量足够大的时候,就会导致数据库文件过大,查询速度慢的问题。

字段宽度:在指定字段类型之后,可能我们的数据达不到字段类型的最大宽度,也会造成空间浪费,比如储存MD5 32 位字符串,如果直接指定char(155),则会导致字段浪费125的宽度,char字段如果填充不满指定宽度还会使用0填充,就会使数据库多储存125个字符造成储存空浪费,在查询的时候也会影响查询速度.

例:

1.字段类型选择

储存整数采用int类型,储存字符串采用char或者varchar类型,【字段在实际操作用进行选择,这里只是举例】

2.字段宽选择

储存 1-9 的数字 采用 tinyint(1) , 储存 655360 采用 int(5)

储存固定32位长度 采用 char(32) , 储存 1-32 长度的字符串 采用 varchar(33)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值