我查网上资料,在数据库中存储 IP 地址,通常有使用 VARCHAR 和 UNSIGNED INT 两种方案,各有利弊。请问各位在项目中使用哪种方案存储 IP 地址字段?
我查网上资料,在数据库中存储 IP 地址,通常有使用 VARCHAR 和 UNSIGNED INT 两种方案,各有利弊。请问各位在项目中使用哪种方案存储 IP 地址字段?
|
GeorgeGalwaySep 20, 2022
1
VARCHAR
|
|
2
VARCHAR
|
|
0o0O0o0O0oSep 20, 2022
3
VARBINARY(4) 或者 VARBINARY(16)
|
|
LeegoYihSep 20, 2022
4
都可以,varchar 方便读,int 节约一点点空间,IP 应该不会有模糊查询的需求吧?
同一个项目中使用统一规范即可,不用纠结 |
|
fisherweiSep 20, 2022
5
你们用 varchar 存储的,遇到需要匹配 x.x.x.x/y 的需求怎么处理的?
比如加白、拉黑 |
|
trammSep 20, 2022
8
随意啦,需要存 IP 地址的地方也不多吧...
|
|
10
UNSIGNED INT ,遇到取 cidr 的时候,直接 BETWEEN 就搞定了
|
|
piconeSep 20, 2022
11
|
|
WdafffSep 20, 2022
12
磁盘便宜,怎么方便怎么来
|
|
QKgf555H87Fp0cthSep 20, 2022
13
一切从简,VARCHAR
|
|
knightdfSep 20, 2022
14
你可以都存
|
|
agagegaSep 20, 2022 via iPhone
15
用 unsigned int 小心 ipv6
|
|
IDAEngineSep 20, 2022
16
存 16 进制
|
|
loginv2Sep 20, 2022
17
两个都存
|
|
masterclockSep 20, 2022
18
ipv4 ,存字符串的话,存前先同一个格式吗?
比如 127.0.0.1 127.1 0177.0.0.1 0177.1 0x7F000001 167772673 |
|
adoalSep 20, 2022
19
PostgreSQL 原生 inet/cidr 类型
|
|
NoStringSep 20, 2022
20
clickhouse 有 ipv4 和 ipv6 的类型
|
|
msg7086Sep 20, 2022
21
IPv4 存 int32 ,IPv6 用 binary(16)。
|
|
newmlpSep 20, 2022
22
当然 int ,需要显示的地方让前端自己转一下就行了
|
|
JohnBullSep 20, 2022
23
PostgreSQL 内置了 CIDR 类型,支持 v4 和 v6
|
|
ericlsSep 21, 2022 via iPhone
24
看要解决什么问题
|
|
julyclydeSep 21, 2022
25
varchar 显然是错误的
如果没有特定的类型,应该用某种 uint32 保存 IPv4 地址 |
|
bthuluSep 21, 2022
26
varchar, 要相信现代数据库的查询能力
|
|
cheng6563Sep 21, 2022
27
char(15)
并且 1.2.3.4 存成 001.002.003.004 |
|
nothingistrueSep 21, 2022
28
看业务需求,一般没有防火墙处理的话,VARCHAR 即可,因为你业务上就是把它当字符串用的。
|
|
RRRogerSep 21, 2022
29
postgres 有专门存储 ip 的字段
|
|
JunzhouSep 21, 2022
30
直接 long 就可以了,或者无符号 int ,存取的时候使用 mysql 运算函数转换。
|