数据库表设计有个state状态字段,用char(1)还是int类型存储比较好?

yekeyishuo 2013-08-11 12:38:04
state状态字段就几种情况:(数据库表存的是数字1,2,3)
1:新增
2:修改
3:删除
我认为char(1)存占用的空间比较少,但是最多只能存储8位数的字符串。int占用空间多(可能是32位),请问是不是这样理解的?
...全文
5662 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yekeyishuo 2013-08-11
  • 打赏
  • 举报
回复
引用 1 楼 wwwwgou 的回复:
#1.如果字段不参与运算,只是WHERE state = '1',用CHAR(1),可能会省些空间(对于一条记录,CHAR(1)比INT会省3字节,但很多情况下,一个页(8K)不会因为每条记录省这3字节而可以再多存储一行记录)。 #2.如果字段参与运算,用INT
请问查询速度那个快
Shawn 2013-08-11
  • 打赏
  • 举报
回复
#1.如果字段不参与运算,只是WHERE state = '1',用CHAR(1),可能会省些空间(对于一条记录,CHAR(1)比INT会省3字节,但很多情况下,一个页(8K)不会因为每条记录省这3字节而可以再多存储一行记录)。 #2.如果字段参与运算,用INT
hgwyl 2013-08-11
  • 打赏
  • 举报
回复
引用 4 楼 ap0405140 的回复:
如果state状态字段的可能值只有: 1,2,3 那么建议用tinyint数据类型即可,仅占1字节. http://technet.microsoft.com/zh-cn/library/ms187745(v=sql.105).aspx
谢谢! 之前不懂……但选用tinyint……居然中了……
唐诗三百首 2013-08-11
  • 打赏
  • 举报
回复
如果state状态字段的可能值只有: 1,2,3 那么建议用tinyint数据类型即可,仅占1字节. http://technet.microsoft.com/zh-cn/library/ms187745(v=sql.105).aspx
Shawn 2013-08-11
  • 打赏
  • 举报
回复
速度基本上差别不大,如果只是查询。直接用CHAR(1)就好了。不必纠结。

34,836

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧