IPv6 アドレスをリレーショナル データベースに保存するには、IPv6 アドレスの長さが 128 ビットであるため、課題が生じます。これらのアドレスに対応するためのさまざまなアプローチを検討し、次のオプションが考慮されます。
2xBIGINT
2 つの UNSIGNED BIGINT 列を使用してアドレスを格納でき、次のアドレスで自然に分割できます。 /64 ネットブロック境界。
CHAR(16)
CHAR(16) 列ではバイナリ ストレージが可能で、IPv6 アドレスを 16 進文字列として直接保存します。
CHAR(39)
アドレスを次のように保存しますCHAR(39) 列のテキスト文字列は代替手段であり、特殊なシナリオでより柔軟な対応が可能です。
専用テーブルの 8xSMALLINT
アドレスを 8 つに分割する 16 -bit フラグメントを使用し、それらを専用のテーブルに保存することで、より小さなアドレスの集計と操作が容易になります。
推奨事項
最適なアプローチの選択は、特定の要件によって異なります。特定のシナリオでは、2xBIGINT UNSIGNED 列を使用してアドレスを格納することが実行可能な解決策です。 /64 ネットブロック境界と適切に調整され、ストレージ効率を最大化し、操作を簡素化します。
以上がIPv6 互換アドレスをリレーショナル データベースに最適に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。