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]