mysql 设置字段长度为啥 一般是4的倍数?
比如 int(4) 而不是 int(3)
mysql 设置字段长度为啥 一般是4的倍数?
比如 int(4) 而不是 int(3)
|
msg7086May 4, 2015
1
我倒是很少见到有int(4)的。
|
|
laoyuanMay 4, 2015
2
谁能告诉我int(4) 和 int(3) 有什么区别?
|
|
JayFang1993May 4, 2015
3
我操,我是根据头像来的
|
|
4
int(3)和int(4)所占用的空间都是一样的,3和4是只是限制显示的位数
|
|
wy315700May 4, 2015
5
4楼正解,,,
|
|
ksupertuMay 4, 2015
7
楼主需要补计算机基础原理《深入理解计算机系统》 关键字 二进制
|
|
10
显示宽度是最小宽度,不限制最大宽度,若设置了zerofill值则左边用0填充。 https://dev.mysql.com/doc/refman/4.1/en/numeric-type-attributes.html
另外,根据 http://stackoverflow.com/questions/5634104/what-is-the-size-of-column-of-int11-in-mysql-in-bytes ,显示宽度只在mysql的命令行中有效 |
|
wuyadongMay 4, 2015
11
这和计算机的存储结构有关,建议楼主阅读,计算机组成原理 相关书籍。
|
|
b821025551bMay 4, 2015
12
int设置的长度只是显示的补位长度,char设置的长度才是存储空间上的长度
|
|
jhdxrMay 4, 2015
13
|
|
coverMay 4, 2015
14
int(4) 应该表示的 是 10进制下的 位数把。。。所以进经常用的应该是 int(11)正好 32位(二进制)把。。。。 当然也可能 int(4)正好是 8位啊 16位啊 总之要变成2进制的
|
|
ksupertuMay 4, 2015
15
@jhdxr 请问,让人看基础课本,哪里装B了?那我也问你,为什么是四的倍数?你设置成4的倍数是否潜意识里受到了职业习惯的影响?引申发问,硬盘为什么要4K对齐?操作系统为什么是32位64位这样4的倍数?写个关键字 二进制,你就脑补成那个int后面位数是二进制了?我们谈论的是一个东西?
|
|
coverMay 4, 2015
16
@ksupertu 其实我觉得让人看课本没问题,不过回答问题的方式 应该是“ 首先这个问题其实很简单,应该这样这样解释,其次楼主可以去补一下xx课程,xx书 对楼主遇到这方面问题的时候会很有帮助”
这样会不会好一点呢。。。 |
|
yxqcylMay 4, 2015
17
为什么我想到了王思聪?
|
|
b821025551bMay 4, 2015
18
@cover 不是,int(4)里的4就是补位数,和存储没关系。
|
|
coverMay 4, 2015
19
@b821025551b 刚刚查了下 是这样的。。孤陋寡闻了 一直不知道 其实括弧里面的数也没啥用咯
|
|
wuyadongMay 4, 2015
20
@jhdxr ...这有装逼么? 题主问得什么是4的倍数,这个数字问什么这么特别,这不是和计算机体系结构里的知识有关么,我只是非常诚恳的告诉楼主哪里可以知道答案....ps:如果想装逼应该就会回答,mysql的源码什么滴...........
|
|
iyaozhenMay 4, 2015
21
int 还要设置值吗?直接 int(11),设置啥都一样。
|
|
cmingxuMay 4, 2015
22
int(11)这玩意实在容易迷惑人, 这东西就是给client用的, 告诉client该用多宽来显示字段里面内容的。
|
|
imn1May 4, 2015
23
4*8=32 bits
|
|
litoMay 4, 2015
24
@JayFang1993 我也是!
|
|
elvbaMay 4, 2015
29
@hobbyliu 10楼的解释很全面了,对于 int 型,这个 x 只有你在设置了零填充,并且只有使用 mysql 命令行工具时,才会有用,也就是说……这个东西并没有什么用嘛,无视掉都可以。
|
|
kchumMay 4, 2015 via iPhone
30
10# 正解
29# 更让人明白… |
|
thinkmoreMay 5, 2015
33
限制位数而已,我还用int(10)呢
|
|
mingyunMay 24, 2015
34
亲测,int(2) 也能插入12344,看来没什么用
|