首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL字符与整型

问MySQL字符与整型
EN

Stack Overflow用户
提问于 2013-04-09 15:39:24
回答 4查看 6.1K关注 0票数 2

我最近在班上讨论了MySQL中的数据类型char和int。我们有一个8个独立号码的电话号码。然而,我们找不到它们各自的优点和缺点。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-09 15:56:27

如果你有一个固定的大小,那么你可以使用char(8) -> 8B,mysql对固定大小的字段的工作速度要快得多,但如果你选择int -> 4B,你将节省空间,而且如果你对该字段建立索引,它的工作速度将比char快。

您可以执行一个简单的基准测试,使用char(8)和int测试读写速度

如果您有固定大小,则使用可变长度类型(如varchar或varbinary )没有意义,因为性能会降低

票数 4
EN

Stack Overflow用户

发布于 2013-04-09 15:44:34

取决于您想要如何表示电话号码,您是否需要区号、国家代码或诸如此类的内容,以及是否要将其保存为单列或将其拆分?

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

票数 1
EN

Stack Overflow用户

发布于 2013-04-09 15:57:38

我不知道美国的具体情况,但在欧洲,国内访问代码是前导0,国际访问代码是前导00或+。所以这是使用INT的一个缺点,因为前面的0会丢失。此外,您还有包含姓名的电话号码,即使这些姓名可以转换为数字,但将它们保留为姓名可能会更好。这是使用INT的第二个缺点。最后一个缺点是,您还可以有分机号码等。所有这些都有利于VARCHAR。

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

https://stackoverflow.com/questions/15896055

复制
相关文章

相似问题

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