MySQL char与int

时间:2013-04-09 07:39:24

标签: mysql types

我目前正在课堂上讨论MySQL中的数据类型charint。 我们有一个8个人的电话号码。但是,我们找不到每个人的利弊。

我们应该使用char类型还是int类型,为什么?

4 个答案:

答案 0 :(得分:3)

如果您有固定尺寸,则可以使用char(8) - >如图8B所示,对于固定大小的字段,mysql的工作速度要快得多,但如果选择int - > 4B你将节省空间,如果你将在该字段上有一个索引,它将比char更快地工作。

您可以使用char(8)和int

执行简单的基准测试来测试写入和读取的速度

如果你有一个固定的大小,那么使用 varchar或varbinary 等可变长度类型会有没有点,因为性能降低

答案 1 :(得分:1)

取决于您希望如何表示电话号码,您是否需要区号,国家/地区代码和类似内容,是否要将其保存为单个列,还是要将其拆分?

就个人而言,我会选择将区号,国家/地区代码和电话号码表示为3列,数据类型为int,因为这样可以更轻松地找到一个区域中的所有电话号码,依此类推。但是,如果它的唯一目的是像一个字符串值,那么char就足够了,但如果你有几个国家的电话号码,我会考虑使用varchar

答案 2 :(得分:1)

完全不了解美国,但在欧洲,国家访问代码是领先的0,国际访问代码是领先的00或+。所以这是使用INT的一个骗局,因为领先的0将会丢失。此外,您还有包含名称的电话号码,即使这些名称可以转换为数字,也可以将它们作为名称保留。这是使用INT的第二个问题。最后一点是你也可以有分机号码等。所有人都赞成VARCHAR。

答案 3 :(得分:0)

我开始使用VARCHAR来存储电话号码,因为它可以为您提供更多不同国家/地区的格式。存储很便宜。