首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tinyint还是varchar(1)?

tinyint还是varchar(1)?
EN

Stack Overflow用户
提问于 2011-04-23 23:06:51
回答 3查看 5.3K关注 0票数 5

我在一些表中有一些只能包含来自0 to 9的值的字段,还有一些可以包含0 or 1的字段。

就你的经验而言,是用TINYINT还是用VARCHAR(1)存储更好?

例如内存使用量,识别它们的速度,等等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-23 23:13:26

这取决于您将如何使用值:作为字符串还是作为数字。如果你打算把它们用作数字,TINYINT(1)绝对更好,因为mysql不需要做不必要的转换。对于1个字符的字符串,您可以使用CHAR(1)

票数 10
EN

Stack Overflow用户

发布于 2011-04-23 23:10:13

这应该没什么关系,尽管我会选择CHAR(1)而不是varchar。

如果你把这个值当做一个数字来使用,也就是你要加减它们,那就用TinyInt。

否则,试着向前看。有没有可能会有新的价值观?那么范围是多少呢?

票数 2
EN

Stack Overflow用户

发布于 2019-10-23 10:59:26

如果可以使用TINYINT(1),最好使用它,因为VARCHAR(1)每行占用的空间量是前者的两倍;TINYINT(1)每行只使用1个字节,而VARCHAR(1)使用1个字节表示长度,然后用另一个字节表示实际数据。这会使查询中使用的数据量加倍,以及任何相关的索引等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5764953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档