最近建数据库表的时候发现,存手机号时,bigint占的字节数是8,而char占的字节数时11,显然,用bigint存储手手机号能够节省很多内存,但是几乎所有的数据库存储手机号都用char,那么为什么不用bigint呢?
各种百度后我得出以下几点:
1.首先,手机号的本质是字符串而不是数字,只是恰巧长得像数字而已。(网上百度的,我也不知道三大运行商是怎么储存的)
2.字符串可以通过LINK去匹配,查询很方便。
3.字符串可以去匹配尾号或者首号。
4.在32位的某些应用中,bigint太大,会溢出,要进行各种转换,很麻烦。
5.手机号可能有-(座机),用int存不了。
本人认知有限,希望得到各种指正,谢谢。