y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

住所データをDBに入れた

先日ダウンロードした住所⇔ポイント(街区CSV)データをDBに入れてみた。
入れる前のCSVの総データ容量は1.2GBであったが、MS-Access2000に入れたらサイズは1.7GB(3割増)。Accessデータベースの容量上限が2GBだから、クエリテーブルを作ることすら出来ない。
勢いで無味乾燥なインポート作業をしたのはいいが、使うんかなぁ。(PHPから使うんならMySQLだったかも、しまった!)
ところで、とあるblogの書き込みで、住所の正規化なんていうネタを見た。確かに住所表記の揺れや市町村合併を吸収するような、こんな仕掛けによって、住所検索の精度が高まるんだろうね。
ajaxで先頭からマッチさせて候補を提示するときって、どんなクエリーなりテーブル構造の時にパフォーマンスが出やすいんだろうか?
あいまい検索をかけて候補を出していくよりも、住所を正規化して、各レベルのANDを取って行った方が速いとか?都道府県別のテーブルにそれぞれ検索をかけて、結合をかけるか・・・。
住所レコードって、さすがに件数がハンパじゃないので、十分に設計した方がよさそう。
※全国の住所をカウントしたら1573万5611件
郵便番号DBは12万1606件。
郵便番号テーブルを検索して町丁目まで絞った状態で、対象テーブルを決定し、住所-緯度経度DBに絞込みをかけるっていう方法もあるなぁ。郵便番号テーブルと住所テーブルをビューで結合しておいて・・・ってやるのもアリか。