これは、2次元インデックスをサポートするデータベースエンジンで非常に迅速に実行できます...そしてmysqlは私が知っているように無制限の次元をサポートします...それは簡単です..結果セットを妥当なものに制限するために2次元インデックスを使用しますサイズを非常に速く...次に、必要に応じて高精度の計算アルゴリズムを使用して結果セットを調べます。難しいことではありません。ただし、経度180 / -180の線と交差して2dになる場合は、2つのリストを一緒に作成する必要があります。インデックスは単純です....インデックス(緯度、経度)...そのインデックスは緯度または緯度、経度のペアでのみ機能します...経度だけでは機能しません...経度インデックスに追加のインデックスが必要な場合(経度)....大まかな見積もりの正方形を選択し、気になる場合は角を丸めます。..。
最初に郵便番号または都市がある場合...郵便番号は単なる1次元インデックスです...問題なく高速に実行できます..インデックスインデックス(zip)を使用するだけです...ハードドライブが遅すぎる場合は、ソリッドステートドライブを取得してシーク時間をなくします。または、巨大なRAMを使用してテーブル全体をキャッシュします。これは、どちらの方法でも難しい問題ではありません。
それが十分に速くない場合は、ネットワークオーバーヘッドがあるため、誰かのサービスを使用しても役に立ちません...データをram / ssdに直接保持し、独自の2-d/1-dインデックスシステムを構築する必要があります。それが必要です(難しくはありません)... sqlエンジンには多くのオーバーヘッドがあるため、そのルートはおそらくsqlを10倍ほど上回る可能性があります...誰かが自分のマシンで実行されるサービスを提供する可能性がありますが、現実的には、サービスにリクエストを送信するために多数のフープディループを通過する必要があるため、SQLに勝るものはありません。ソリッドステートドライブを使用するSQLおよび2-Dインデックスは高速で処理されます。郵便局でない限り、データを自分で処理する必要はありません。データを提供する1台のマシンで1秒あたり10,000通のメールを並べ替えます。次にあなた'