2013-04-09 44 views
2

我目前有在我的课有关数据类型在MySQL charint的讨论。 我们有8个电话号码。但是,我们找不到每个人的优点和缺点。MySQL的字符与INT

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

回答

3

如果你有一个固定的大小,那么你可以使用char(8)-> 8B,mysql的固定大小字段的工作速度更快,但如果你选择int-> 4B,你将节省空间,如果你将有一个索引字段它会更快,然后字符。

你可以做一个简单的基准测试的写入速度和读取使用CHAR(8)和int

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

1

取决于你要代表的电话号码,你需要区号,国家代码和类似的东西怎么了,你想将其保存为一列或者你想它分裂?

就个人而言,我会选择代表区号,国家代码和电话号码3列与数据类型int,因为这将使它更容易找到所有的电话号码在一个区域,依此类推。但是,如果它的唯一目的就是要像一个字符串值,该字符就足够了,但是

+0

谢谢你的答案。但是,我们只需要存储每行的8位数字。什么会更好地保存8个数字,char或int? – 2013-04-09 07:49:35

+0

VARCHAR会做的工作,因为你将不能够存储前导零与一个int值。 – ArchiFloyd 2013-04-09 07:52:17

+0

两个'char','varchar'和'int'会做这项工作。在丹麦,电话号码不能有一个前导零。我只需要知道哪一个会更好使用,这是为什么 – 2013-04-09 07:57:51

0

我开始使用VARCHAR存储手机,我会考虑使用varchar相反,如果你有电话号码的几个countries.`数字,因为它为您提供更多不同国家的格式范围。存储便宜。

1

不完全了解美国,但在欧洲,国家接入码是领先的0,国际接入码是领先的00或+。所以这是一个使用INT,因为领先的0将丢失。此外,您还拥有包含姓名的电话号码,即使这些姓名可以转换为数字,但将其保留为姓名可能也不错。这是使用INT的第二个约束。最后一个con是你也可以拥有分机号码等等。所有这些都归功于VARCHAR。