由于其 128 位长度,在关系数据库中存储 IPv6 地址带来了挑战。探索容纳这些地址的各种方法,考虑以下选项:
2xBIGINT
可以使用两个 UNSIGNED BIGINT 列来存储地址,从而在/64 网络块
CHAR(16)
CHAR(16) 列允许二进制存储,直接将 IPv6 地址存储为十六进制字符串。
CHAR(39)
将地址存储为文本字符串CHAR(39) 列中是一种替代方案,为特殊场景提供了更大的灵活性。
专用表中的 8xSMALLINT
将地址分为 8 个 16 位片段并将它们存储在专用表中可以更轻松地聚合和操作较小的地址
建议
选择最合适的方法取决于具体要求。对于给定的场景,使用 2xBIGINT UNSIGNED 列存储地址是一个可行的解决方案。它与 /64 网络块边界很好地对齐,最大限度地提高存储效率并简化操作。
以上是如何在关系数据库中最好地存储 IPv6 兼容地址?的详细内容。更多信息请关注PHP中文网其他相关文章!