竹笋

首页 » 问答 » 问答 » 面试官如果要存IP地址,用什么数据类
TUhjnbcbe - 2022/7/26 17:43:00
治疗白癜风北京哪家医院好 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/

hi!我是山查~

在看高机能MySQL第3版(4.1.7节)时,做家倡议当储备IPv4住址时,应当行使32位的无标识整数(UNSIGNEDINT)来储备IP住址,而不是行使字符串。然则没有给出详细因为。

为了搞明晰这个因为,查了一些材料,纪录下来。

相对字符串储备,行使无标识整数来储备犹以下的益处:

俭省空间,不论是数据储备空间,依旧索引储备空间

便于行使局限盘查(BETWEEN...AND),且效率更高

一般,在保管IPv4住址时,一个IPv4最小需求7个字符,最大需求15个字符,于是,行使VARCHAR(15)便可。

MySQL在保管变长的字符串时,还需求额外的一个字节来保管此字符串的长度。而假使行使无标识整数来储备,只要要4个字节便可。

此外还能够行使4个字段离别储备IPv4中的各部份,然则一般这不论是储备空间和盘查效率应当都不是很高(或许有的场景恰当行使这类方法储备)。

行使字符串和无标识整数来储备IP的详细机能剖析及benchmark,能够看这篇文章:

1
查看完整版本: 面试官如果要存IP地址,用什么数据类