MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

【MySQL】IPアドレスを保存するのに最適なデータ型は?INT UNSIGNEDとINET_ATON/INET_NTOAの使い方

IPアドレスの保存にはINT UNSIGNED型がおすすめ

MySQLでIPアドレスを扱う場合、INT UNSIGNED型を使うのが効率的です。IPv4アドレスは32ビットの整数値として表現できるため、文字列型で保存するよりもストレージ容量を節約でき、検索や比較も高速になります。

ポイントは、データの登録時(INSERT)にINET_ATON()関数を、取得時(SELECT)にINET_NTOA()関数を使用することです。これにより、ドット区切り形式(例:120.0.0.1)のIPアドレスと数値を相互に変換できます。

それでは、具体的な手順を見ていきましょう。

1. テーブルの作成

まず、INT UNSIGNED型のカラムを持つテーブルを作成します。

mysql> create table IPV4AddressDemo
   -> (
   -> `IPV4Address` INT UNSIGNED
   -> );
Query OK, 0 rows affected (0.52 sec)

2. IPアドレスの登録(INET_ATONを使用)

INET_ATON()関数を使うと、ドット区切りのIPアドレス文字列を数値に変換して保存できます。

mysql> insert into IPV4AddressDemo values(INET_ATON("120.0.0.1"));
Query OK, 1 row affected (0.17 sec)

3. レコードの確認

登録済みの全レコードを表示してみます。

mysql> select *from IPV4AddressDemo;

実行結果は次の通りですが、このままでは数値が並んでいるだけで、人間には読みにくい状態です。

+-------------+
| IPV4Address |
+-------------+
|  2013265921 |
+-------------+
1 row in set (0.00 sec)

4. 元のIPアドレス形式に戻す(INET_NTOAを使用)

上の出力のように数値列として表示されても、INET_NTOA()関数を使えば元のIPアドレス形式に変換できます。

mysql> SELECT INET_NTOA(`IPV4Address`) FROM IPV4AddressDemo;

実行結果を見ると、IPアドレスが本来のドット区切り形式で表示されていることが確認できます。

+--------------------------+
| INET_NTOA(`IPV4Address`) |
+--------------------------+
| 120.0.0.1                |
+--------------------------+
1 row in set (0.00 sec)

まとめ

IPアドレスをMySQLで保存するときは、INT UNSIGNED型のカラムを用意し、書き込み時にINET_ATON()、読み出し時にINET_NTOA()を組み合わせるのがベストプラクティスです。なお、IPv6アドレスを扱う場合は、VARBINARY(16)型とINET6_ATON()/INET6_NTOA()関数を使用することで同様の管理が可能です。

  1. MySQL環境変数一覧|各変数の役割と設定時の注意点を解説

    MySQL環境変数とはMySQLは、動作やクライアントの挙動を制御するために、直接または間接的にさまざまな環境変数を使用します。本記事では、MySQLが利用する主な環境変数の名称と、それぞれの役割について詳しく解説します。環境変数を適切に理解しておくことで、接続設定やデバッグ、ビルド作業などを効率化でき、トラブルシューティングにも役立ちます。認証・セキュリティ関連の環境変数AUTHENTICATION_LDAP_CLIENT_LOG − クライアント側のLDAP認証におけるログレベルを指定します。AUTHENTICATION_PAM_LOG − PAM認証プラグインのデバッグログ設定を行います

  2. MySQLクライアントオプション徹底解説!主要コマンド一覧と使い方

    mysqlコマンドでは、さまざまなクライアントオプションを利用できます。これらのオプションは、コマンドラインから直接指定するほか、オプションファイルの[mysql]および[client]グループに記述することでも設定可能です。本記事では、mysqlコマンドで利用できる主要なオプションについて、それぞれの役割と使いどころをわかりやすく解説します。ヘルプ表示系オプション--help, -?ヘルプメッセージを表示して終了します。オプションの一覧や使い方を手軽に確認したい場合に便利です。表示形式に関するオプション--auto-rehash自動リハッシュ機能を有効にします。このオプションはデフォルトで有