【发布时间】:2011-08-30 08:43:24
【问题描述】:
我在这里看到了许多关于在 RDBMS 中存储 IPv4 和 IPv6 地址的问题(并已阅读)(通常是 MySQL,与我的情况不同 em>)
无论如何,如果(而且我的阅读方式也不同,因此请告知这是否不正确或已正式弃用)IPv4 地址在翻译中被零填充并存储在::/96 块中,会使用两列可能是有意义的:
`ip96` BINARY(12) NULL , /* first 3 bytes of ipv6 */
`ip32` BINARY(4) NOT NULL , /* whole ipv4 or last byte of ipv6 */
就数据规范化而言,这在我的脑海中是有道理的,并且测试地址是否在 IPv4 或 IPv6 范围内就像 IS NULL 一样简单。
但是,我看到VARBINARY(16) 出现在许多解决方案中。
在VARBINARY(16) 或2 个未签名的BIGINT 列上实施此解决方案是否有任何可预见的性能增益/损失?关于索引,或任何进一步的考虑?
【问题讨论】:
标签: mysql ipv6 binary-data ipv4