日記
URLのパーツごとの統計Edit

旧1470.netではURLをvarchar(255)で格納していたんだけど、新1470.netではprotocol、hostname、port、path、querystring、fragmentというパーツに分割し、URL自体はそれらへのIDへのリンクとして持つようにした。

URL情報をハンドリングするには、必ず6つのテーブルへの参照が必要と、処理的には冗長なんだけど、従来のやり方だと無限に増え続けるURL情報がDBサイズを圧迫するんで、とにかくDB上のURL関連データのサイズを圧縮する方が、スケールを考えたときには圧倒的に有利だったので。

で、しばらく走らせてみて、いろいろなURL関連の情報がたまってきたところで、URL数に対しての各パーツの数ってのは、結構面白い情報だなーと思ったので、現在の値を晒してみる。こういうのって研究している人いるのかなー。

URL112,679
プロトコル*12
ホスト名*221,378
パス78,979
QUERY_STRING8,214
フラグメント23,510

ちなみに、URL情報は形式的にvalidであれば、実体がなくても(404とか返ってきても)登録はされるようになっているんで、すべてが有効なURLであるとは限らない。

あと、うちのDBに登録されるURLってのは、基本的に

  • 誰かが興味を持ったURL
  • RSSなどで配信されているURL

なので、そういう偏りがあることにも注意が必要だろう。

*1 現在のところhttpとhttpsしか扱っていないので

*2 小文字に統一して扱っている

Published At2006-07-07 00:00Updated At2006-07-07 00:00