[转帖]MySQL数据库-整数类型宽度-int(3)与int(11)区别_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
4
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3138 | 回复: 3   主题: [转帖]MySQL数据库-整数类型宽度-int(3)与int(11)区别        下一篇 
tngou
注册用户
等级:中校
经验:2433
发帖:192
精华:15
注册:2014-4-28
状态:离线
发送短消息息给tngou 加好友    发送短消息息给tngou 发消息
发表于: IP:您无权察看 2014-5-1 13:40:44 | [全部帖] [楼主帖] 楼主   主页

通常我们可以看到有时在创建整型指定宽度如

int(1)
int(11)
int(20)


其实这里意义不大,对于操作和存储来说int(1)、int(11)、int(20)都是一样的,存储范围都是一样。

所以如果我们选择用一个数据库类型就可以图略类型指定宽度,由于意义不大,通过花费时间与考虑

到底使用什么宽度。比如我们的数据范围在0-9使用int(1),还不如使用tinyint(4),后者更高效。

然而数据类型宽度冰封没用,对于一些特定的数据库客户端,用于显示字符的个数。

如:

tinyint 字符宽度是tinyint(4)——存储范围 -128~127

tinyint unsigned 字符宽度是tinyint(3)——存储范围 0~255

这里就可以清楚的了解到tinyint(4)与tinyint(3)与存储范围无关而是显示字符,这里的

tinyint unsigned (无符号范围)比 tinyint 少一个负号所以默认的字符宽度少一。

总结以上,其实设定整数类型的宽度对存储和效率没有多大的意义,只是对于一些数据库客户端显示有意,

所以整数类型的宽度可能成为现在数据库设计的误区。

原文地址:http://blog.yi18.net/articles/2014/04/06/1396774192543.html

该贴由hui.chen转至本版2014-11-5 16:11:52




赞(0)    操作        顶端 
koei
版主
等级:大校
经验:4186
发帖:7
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei 加好友    发送短消息息给koei 发消息
发表于: IP:您无权察看 2014-5-2 7:23:18 | [全部帖] [楼主帖] 2  楼

没太看懂。。。论据是什么,如何证明对存储和效率没有意义?



赞(0)    操作        顶端 
tngou
注册用户
等级:中校
经验:2433
发帖:192
精华:15
注册:2014-4-28
状态:离线
发送短消息息给tngou 加好友    发送短消息息给tngou 发消息
发表于: IP:您无权察看 2014-5-2 10:05:34 | [全部帖] [楼主帖] 3  楼   主页

也就是对于数据库存储来说 int(3)和int(11)是一样的,没有区别!



赞(0)    操作        顶端 
tngou
注册用户
等级:中校
经验:2433
发帖:192
精华:15
注册:2014-4-28
状态:离线
发送短消息息给tngou 加好友    发送短消息息给tngou 发消息
发表于: IP:您无权察看 2014-5-2 10:29:59 | [全部帖] [楼主帖] 4  楼   主页

我们也许以为 int(1) 只能存储0-9,其实不然,他与int(11)存储范围是一样的,一样可以存储上11位数的整数。
比如我和设置int(20),就以为能够存储20位的整数,其实他与int(11)存储范围一样,在存储12位整数时就会出错。
int(x),x对存储是没有影响的,如果用这个就可以改变存储空间位数,那就没有必要设计 bigint、smallint、tinyint……
这些了,因为int(x)就可以做任何事。

也许有这样的疑问,但设计int(1)时,在存储 11 时会提示超出范围,这是什么原因?其实这只是用的客户端工具对
输入做了一个判断。用sql语句,或者其他工具一样的可以存储 11.

int(x),这里的x只是对于一些专门的客户端工具,能够方便人们操作,不能改变存储范围,所以位数一样,对性能
这些就没有影响。



赞(0)    操作        顶端 
总帖数
4
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论