由於其 128 位元長度,在關聯式資料庫中儲存 IPv6 位址帶來了挑戰。探索容納這些位址的各種方法,考慮以下選項:
2xBIGINT
可以利用兩個 UNSIGNED BIGINT 欄位來儲存位址,在/64網路區塊
CHAR(16)
CHAR(16) 欄位允許二進位存儲,直接將 IPv6 位址儲存為十六進位字串。
CHAR(39)
將位址儲存為文字字串CHAR(39) 欄位中是一種替代方案,為特殊場景提供了更大的靈活性。
專用表中的 8xSMALLINT
將位址分為 8 個 16位元片段並將它們儲存在專用表中可以更輕鬆地聚合和操作較小的位址
建議
選擇最合適的方法取決於特定要求。對於給定的場景,使用 2xBIGINT UNSIGNED 列儲存位址是一個可行的解決方案。它與 /64 網路塊邊界很好地對齊,最大限度地提高儲存效率並簡化操作。
以上是如何在關聯式資料庫中最好地儲存 IPv6 相容位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!