社区
MySQL
帖子详情
手机号字段用varchar(13)号,还是bigint类型好?
hiller1
2013-02-28 03:43:34
手机号字段用varchar(13)号,还是bigint类型好?
...全文
14943
11
打赏
收藏
手机号字段用varchar(13)号,还是bigint类型好?
手机号字段用varchar(13)号,还是bigint类型好?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
代码誊写工
2013-03-06
打赏
举报
回复
手机号码都是一样长度,干嘛varchar,用char(20)明显查询效率高得多 我这用bigint+varchar,一个用来查询,另一个用于特殊需求(谁知道会有啥查询),因为是做OLAP,所以有很多冗余列。
YapingXin
2013-03-05
打赏
举报
回复
引用 7 楼 conmajia 的回复:
话说你省那么几个字节精确到13位干嘛?给未来留点麻烦?
说得很对。 所以说 #5 的建议是 varchar(20)
trainee
2013-03-04
打赏
举报
回复
用varcha吧 以后可能要有这样的查询 like '138%'
developerFBI
2013-03-02
打赏
举报
回复
就用varchar(13)吧,方便以后储存长点儿的数据用.
Conmajia
2013-03-02
打赏
举报
回复
话说你省那么几个字节精确到13位干嘛?给未来留点麻烦?
ACMAIN_CHM
2013-02-28
打赏
举报
回复
varchar(13) 比较常见。 因为基本很少会用手机号去做什么数学运算。
YapingXin
2013-02-28
打赏
举报
回复
果断用varchar(20)
rucypli
2013-02-28
打赏
举报
回复
引用 3 楼 hiller1 的回复:
手机号,就存放 13311101191,这样的手机号
那就bigint啊 才占8字节 能省点空间
hiller1
2013-02-28
打赏
举报
回复
手机号,就存放 13311101191,这样的手机号
WWWWA
2013-02-28
打赏
举报
回复
根据具体需求来决定,后期会对手机号进行处理?
rucypli
2013-02-28
打赏
举报
回复
用varchar(2)吧 谁知道以后会不会存+86这样的号码
mysql存储
手机
号
为什么不用
bi
gin
t?
在使用utf8字符编码的情况下: char(11) 用来存储
手机
号
,会占用11 bytes
bi
gin
t 用来存储
手机
号
,会占用 8 bytes
varchar
(11)用来存储
手机
号
,会占用 12 bytes 从容量和速度上看,
bi
gin
t是最好的选择。 从扩展性上看,如果有国际区
号
,业务上也不会带着国际区
号
去查询,国际区
号
也可以放在另一列。 因此,为什么不使用
bi
gin
t存储
手机
号
呢?
手机
号
一般是要加索引的吧。。
bi
gin
t你用了like索引就失效了 1.首先,
手机
号
的本质是字符串而不是数字,只是恰巧长
面试官:20亿
手机
号
存储选int还是string?
varchar
还是char?为什么?
当然了,也不是说string就是银弹。要是你做的是那种极端优化场景,比如电信级别的C级应用,
手机
号
作为主键高频操作,每秒几百万TPS,那你可能要考虑“压缩存储”、“phone number normalization”等骚操作,甚至把
手机
号
转成hash做存储,那就是另外一套玩法了。我之前做CRM系统优化时,客户数据里有
手机
号
、邮箱、微信ID,我们一开始偷懒用char(50)统一搞定,结果数据库膨胀得像吃了膨化剂...后来改成
varchar
,容量直接缩了三分之一,查询速度还提升了(索引页小了,缓存更快了)。
MySQL数据
类型
建表时最容易纠结的问题之一就是“这个
字段
该选什么数据
类型
?”——比如
手机
号
用INT还是
VARCHAR
?金额用FLOAT还是DECIMAL?选对数据
类型
不仅能节省存储空间,还能避免数据错误(比如金额精度丢失、日期格式错乱);选错则会留下隐患(比如用INT存
手机
号
存不下、用TEXT存用户名查询变慢)。本节会按“数值
类型
→字符串
类型
→日期时间
类型
”的顺序,拆解每种常用
类型
的用法、适用场景和避坑要点。够用就好。
手机
字段
存储报错 :Warning Code : 1264 Out of range value for column 'buyer_tpl' at row 1
企鹅上朋友问我:我这明明是11位的int 为啥还说超出范围了呢,然后发来报警截图 我看到是 buyer_tpl int(
13
) unsigned NOT NULL,就知道是怎么回事了,打开dev.mysql.com/doc,找到int的章节,截图发给他
手机
号
码作为数字的话,已经超过了unsigned的峰值4294967296了,给他2个建议 1 ...
mysql 数据
类型
介绍
tinyint , smallint ,mediumint,int,
bi
gin
t 取值范围
类型
字节 最小值 最大值 (带符
号
的/无符
号
的) (带符
号
的/无符
号
的) TINYINT 1 -128 127
MySQL
57,062
社区成员
56,759
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章