2011-09-06 9 views
2

最近、私はMaxmind geoipを使ってipを基に国&を探しました。それはdatファイルの中に巨大な内容を持っています。これらのレコードの取得は数秒以内に行われます。だから、私は非常に興味を持って学び、phpで技術を使用しています。phpでdatファイルを読み書きします。

まず、この.dat拡張ファイルと現在のテキスト情報を使用しているビデオファイルがあります。実際に.dat拡張子は何ですか? PHPで読み書きすることは可能ですか?

ありがとうございます!

答えて

5

私が知っている通り、dat拡張子は、必要なものをあなたが書いた形式で書くことができる汎用ファイルを意味します。
つまり、すべてのファイルでそれを行うことができますが、xmlファイルが見つかった場合は、その中にxml形式のテキストがあるとみなします。反対にdatファイルは、誰がどのように書き込んだのかわからない場合は、特定のソフトウェアで解読できるものとして認識されません。

+0

はいMarco、標準フォーマットではありません。しかし、私が気づいたのは、彼らはdatファイルの中の都市、国のデータベースの巨大なリストを持っていて、それは1秒以内に検索されたということです。私はそれを使用することに興味があるのです。私はあなたが平均を試みていると思う、私たちは彼らがそのdatファイルを作成するためにどのような方法を使用したのか分からない。そうですか? – VKGS

+0

作成に使用した方法は関係ありません。データが格納される形式は変わりません。 – Mchl

+1

@Sekar:ファイルを解析するには、内部のデータの構成方法を知っている必要があります**。都市がアルファベット順にソートされていて、データがすぐに取り出せるように構造化されていれば、我々は「勉強する」ことができます。これは時間の大きな違いを生む可能性があります。 – Marco

0

これらのファイルは、開発したカスタム形式になる可能性が非常に高いです。オープンソースの場合は、PHPで再実装することもできます(PHPで書かれていない場合)、あるいはAPIを使用してデータにアクセスすることもできます。

スピードは何らかの方法で索引付けされるか、「すべてのレコードがファイルにさらに100バイト移動する」というようなものです。

0

ここには多くの質問があります。

まず、ファイルはdatabaseで、データを格納します。リレーショナル、herarchical、オブジェクト指向、ベクトル、ハイパーキューブ、キーストアなど、多くのデータベースモデルがあります。これらのすべての実装が利用可能です。

一部のデータベースは、他のデータベースよりも特定のデータ構造を管理するのに適しています。地理空間データは一般的な特殊化であり、他の多くのデータベースタイプがベクトル機能(リレーショナルデータベースであるmysqlやpostgresqlなど)を提供するほどです。

ほとんどのデータベースシステムでは、データベースのサービスを使用するアプリケーションはデータファイルに直接アクセスしません。アクセスは別のプロセスを介して行われます。これは、通常は洗練されていない複数の独立したプロセスファイルロック機能

地理情報にIPを実装する場合は、リレーショナルデータベースまたはnosqlキーストアを使用することをお勧めします(前方参照のために地理空間のものは必要ありません)。

しかし、IPからジオへのルックアップデータは、製品を販売しているpeolpeが信じるほど正確ではないことに注意してください。あなたの目的がユーザーの正確な位置情報を得ることである場合、HTML5 geolocation APIはより良いデータを提供します。問題は、ユーザーのブラウザーで機能が利用できることです。

+0

私の質問は、PHPを使って.datファイルを読み書きすることです。なぜ私がmaxminds geolocatorを例に使った技術に興味があるのか​​を説明するためです。私は都市情報が80%しか正確ではないことを知っていましたが、私はそれらの巨大なデータを持っていることを意味していました。 – VKGS

+1

@Sekar:あなたはポイントを見逃しています。はい、データ構造がパフォーマンスにかなりの程度影響を及ぼしますが、データ・レイヤーの実装はすでに効率的に行われています。異なるデータ・モデルを使用することで、自分でコードとデータ構造を見ることができます*。 GeoIPルックアップは巨大なデータセットではありません(約2,000万のアドレス - これは43億ではない理由は明らかですが、それは巨大なデータセットではありません)。私のクエリが(もっと大きなデータセットで)完了するのに2秒かかった場合、私はそのパフォーマンスについて非常に心配していました。 – symcbean

+0

ええ!それは有効なポイントだった、datファイルは約20メガバイトの周りにのみ来る。それがパフォーマンスの理由です。ありがとうございます。 – VKGS

関連する問題