通常我们可以看到有时在创建整型指定宽度如
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