sql >> データベース >  >> RDS >> Mysql

mySQLにIPを保存する方法

    実行するクエリの種類を確認して、採用する形式を決定することをお勧めします。

    個々のオクテットを引き出したり比較したりする必要がある場合にのみ、それらを別々のフィールドに分割することを検討する必要があります。

    それ以外の場合は、4バイト整数として格納します。これには、MySQL組み込みの INET_ATON() および INET_NTOA() 機能。

    パフォーマンスとスペース

    ストレージ:

    IPv4アドレスのみをサポートする場合は、MySQLのデータ型を UNSIGNED INTにすることができます。 4バイトのストレージのみを使用します。

    個々のオクテットを保存するには、 UNSIGNED TINYINTを使用するだけで済みます。 SMALLINTSではなくデータ型 、各ストレージを1バイト使用します。

    どちらの方法でも、同様のストレージを使用しますが、オーバーヘッドのために別々のフィールドに少し多く使用します。

    詳細:

    パフォーマンス:

    単一のフィールドを使用すると、パフォーマンスが大幅に向上します。4ではなく単一の比較です。IPアドレス全体に対してのみクエリを実行するため、オクテットを分離しておく必要はありません。 INET _ *を使用する MySQLの関数は、比較のためにテキスト表現と整数表現の間の変換を1回行います。



    1. PostgreSQLでOracleデータベースにアクセスする方法

    2. MySQL-多対多の関係を持つテーブルに挿入する方法

    3. ASYNC NETWORK IO待機タイプをどうするか?

    4. MySQLのInnoDBとMyISAMとは何ですか?