ほとんどの平均的な PHP Web 開発者と同様に、私は MySql を RDBMS として使用しています。MySql (他の RDBMS も同様) は SPATIAL INDEX 機能を提供しますが、私はそれをよく理解していません。私はそれをグーグルで検索しましたが、それについての私の悪い知識を明確にするための明確な実世界の例は見つかりませんでした.
SPATIAL INDEXとは何か、いつ使用する必要があるのか 、誰かが少し説明してもらえますか?
ほとんどの平均的な PHP Web 開発者と同様に、私は MySql を RDBMS として使用しています。MySql (他の RDBMS も同様) は SPATIAL INDEX 機能を提供しますが、私はそれをよく理解していません。私はそれをグーグルで検索しましたが、それについての私の悪い知識を明確にするための明確な実世界の例は見つかりませんでした.
SPATIAL INDEXとは何か、いつ使用する必要があるのか 、誰かが少し説明してもらえますか?
空間インデックスを使用して、地理オブジェクト (形状) にインデックスを付けることができます。空間インデックスにより、空間で重なり合うオブジェクトを効率的に検索できます
場所を保存するために地理データを保存する必要がある場合、または形状関連のデータを保存する必要がある場合は、それを使用できます。
たとえば、人々が近くのレストラン、パブ、バー、その他のたまり場を見つけるのに役立つアプリケーションを開発しようとしているとします。簡単に言えば、これは位置検出プラットフォームになります。
バックエンドの観点から見ると、緯度や経度などのこれらの場所の地理データを保存する必要があります。次に、ユーザーと場所の間の距離を計算する関数を作成する必要があります (場所がユーザーからどれだけ離れているかを示すため)。同じ関数を使用して、ユーザーに最も近い場所、またはユーザーから指定された半径内にある最も近い場所を見つけるアルゴリズムを設計できます。
ここの例でより良いアイデアを見つけることができます:- https://medium.com/sysf/playing-with-geometry-spatial-data-type-in-mysql -645b83880331
空間インデックスの使用は、範囲スキャンではなく、正確に一致する値のルックアップの検索に最適です。主に MyISAM テーブルでサポートされていますが、MySQL 5.7.4 LAB リリースからは、Innodb でもサポートされています。
参照:- http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html http://mysqlserverteam.com/innodb-spatial-indexes-in-5-7-4-ラボリリース/