我在一些表中有一些只能包含来自0 to 9的值的字段,还有一些可以包含0 or 1的字段。
就你的经验而言,是用TINYINT还是用VARCHAR(1)存储更好?
例如内存使用量,识别它们的速度,等等。
发布于 2011-04-23 23:13:26
这取决于您将如何使用值:作为字符串还是作为数字。如果你打算把它们用作数字,TINYINT(1)绝对更好,因为mysql不需要做不必要的转换。对于1个字符的字符串,您可以使用CHAR(1)。
发布于 2011-04-23 23:10:13
这应该没什么关系,尽管我会选择CHAR(1)而不是varchar。
如果你把这个值当做一个数字来使用,也就是你要加减它们,那就用TinyInt。
否则,试着向前看。有没有可能会有新的价值观?那么范围是多少呢?
发布于 2019-10-23 10:59:26
如果可以使用TINYINT(1),最好使用它,因为VARCHAR(1)每行占用的空间量是前者的两倍;TINYINT(1)每行只使用1个字节,而VARCHAR(1)使用1个字节表示长度,然后用另一个字节表示实际数据。这会使查询中使用的数据量加倍,以及任何相关的索引等。
https://stackoverflow.com/questions/5764953
复制相似问题