mysql int和tinyint的区别整理.pdfVIP

  • 6
  • 0
  • 约1.4千字
  • 约 2页
  • 2021-02-02 发布于广东
  • 举报
问题:int(1) 和 tinyint(1) 有什么区别呢? 像这样的设计,反正我是不会写int(1)的。 查了下,mysql 中设置了储存类型后,储存是定长的,也就是说,int(1) 和 int(4) 在 硬盘中所占的字节数都是一样的。 我们知道,int 类型占4 个字节,tinyint 占1 个字节。int(1) 和 int(4) 从本身长度还是 存储方式上都是一样的,区别就是显示的长度不同,但是要设置一个参数:如果列制 定了zerofill 就会用0 填充显示,int(4)指定后就会显示为0002。 int(1)和tinyint(4) 相比,肯定int 大。 注意数字类型后面括号中的数字,不表示长度,表示的是显示宽度,这点与 varchar 、 char 后面的数字含义是不同的。 也就是说不管 int 后面的数字是多少,它存储的范围始终是 -2^31 到 2^31 - 1。 综上整型的数据类型括号内的数字不管是多少,所占的存储空间都是一样 tinyint 一个字节 smallint 两个字节 MEDIUMINT 三个字节 显而易见,int(1) 和 tinyint(1) ,在设计数据库的时候应该选择tinyint(1) 。所占的储 存空间越少越好,当然要够用才行。像这样储存一个 个位数的字段,还是用tinyint(1) 的好。 总结: 1.规定类型之后,存储是定长的,int(1)和int (4 )从本身长度还是存储方式上都是一 样的。mysql 里,int (1)和int(4)的区别就是显示的长度,但是要设置一个参数:如 果列制定了zerofill 就会用0 填充显示,如2 int(3)指定后就会显示为002 1 2.int 存储占4 个字节, tinyint 存储占1 个字节,存储长度决定了他们表示的数字 范围不同。int 表示的数字范围是:从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。tinyint 表示的范围是0-255 之间的数字。 3.tinyint(1),和tinyint(3)没什么区别,存123 都能存的下,而如果tinyint(3) zerofill 的 话,插入值 12,会存储012 ,zerofill 自动左边补零,这才是限制显示长度。 上面总结的有点乱。下面精简总结: tinyint(1) 和 tinyint(3) 没什么区别,占用字节都是一位,存储范围都是一样的 tinyint(3) zerofill ,当插入的数据少于3 位的时候,左边自动补零,这才是限制显示 长度 int(1) 和 tinyint(1) ,够用的情况下,优先选择tinyint(1) ,因为占字节少、节省空间。 tinyint 一个字节 smallint 两个字节 MEDIUMINT 三个字节 int 4 个字 节 BIGINT 8 个字节。 2

文档评论(0)

1亿VIP精品文档

相关文档