mysql:10103
From: 渡邊昌之 <渡邊昌之 <mark@xxxxxxxxxx>>
Date: Fri, 10 Sep 2004 14:41:45 +0900
Subject: [mysql 10103] Re: IPアドレス格納・検索方法
はじめまして、渡邊と申します。
INET_ATON(expr)
と
INET_NTOA(expr)
という関数がMysqlに用意されていますのでこれを使えば
いいんじゃないでしょうか。
例
mysql> SELECT INET_ATON("209.207.224.40");
-> 3520061480
mysql> SELECT INET_NTOA(3520061480);
-> "209.207.224.40"
型をINTにして、
CIDRで取り出したいと思ったら
ビット演算すればいいんじゃないかと
Yoshiaki Saita <yoshia-s@xxxxxxxxxx> wrote:
>
> 斎田と申します。
>
> 今回、テーブルにIPv4アドレスを格納しないといけないのですが、
> どのような方法が効率的でしょうか。
> 今までは、PostgreSQLを利用しており、
> ネットワークアドレスデータ型、関数が利用できてました。
>
>
> 格納したデータの検索は、
> IPアドレスを指定してデータを抽出するのはもちろん、
> CIDRなどの記述ででも取り出せるようにする予定です。
>
>
> 現在では、
>
> IPAddress varchar(16)
>
> とし、文字列として格納しています。
> 検索の時には文字列比較で抽出していますが、
> 文字列比較はかなりのコストがかかり相当遅くなるようです。
>
> IPアドレスを何らかの数値に変換して記録できれば
> 速度的にかなり速くなると伺ったことがあります。
>
> レコード数は1000万件以上あります。
>
>
> 何か効率的な格納、検索方法等ございましたら
> ご教授頂ければ幸いです。
_______________________________________
渡邊昌之
mark@xxxxxxxxxx
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10099 2004-09-10 13:33 [Yoshiaki Saita <yosh] IPアドレス格納・検索方法 10100 2004-09-10 13:47 ┣[seiji takegata <take] 10101 2004-09-10 13:53 ┣[hiroshi nagasaka <h-] 10102 2004-09-10 14:13 ┣[坂東健一 <bando@xxxx] -> 10103 2004-09-10 14:41 ┣[渡邊昌之 <mark@xxxxx] 10105 2004-09-10 14:42 ┗[HAMAI Kyoichi <k-ham] 10139 2004-09-14 20:35 ┗[Yoshiaki Saita <yosh]