数据库表设计有个state状态字段,用char(1)还是int类型存储比较好?
state状态字段就几种情况:(数据库表存的是数字1,2,3)
1:新增
2:修改
3:删除
我认为char(1)存占用的空间比较少,但是最多只能存储8位数的字符串。int占用空间多(可能是32位),请问是不是这样理解的?
------解决方案--------------------#1.如果字段不参与运算,只是WHERE state = '1',用CHAR(1),可能会省些空间(对于一条记录,CHAR(1)比INT会省3字节,但很多情况下,一个页(8K)不会因为每条记录省这3字节而可以再多存储一行记录)。
#2.如果字段参与运算,用INT
------解决方案--------------------速度基本上差别不大,如果只是查询。直接用CHAR(1)就好了。不必纠结。
------解决方案--------------------如果state状态字段的可能值只有: 1,2,3
那么建议用tinyint数据类型即可,仅占1字节.
http://technet.microsoft.com/zh-cn/library/ms187745(v=sql.105).aspx
------解决方案--------------------
谢谢!
之前不懂……但选用tinyint……居然中了……