2016-09-23 6 views
0

私は多くのイメージのインフォメーションストアをMySQLに持っていますが、ほとんどのイメージにはジオロケーション情報がありますが、MySQL 5.7ジオスペースインデックスは、ポイントが1つのポイントに集中してパフォーマンスの問題を引き起こします

MySQLジオスペースインデックスではnullジオメトリポイントが許可されないため、POINT(1000 1000)のようなナンセンスポイントをテーブルに挿入する必要があります。

ジオロケーション情報を持たないすべてのイメージがPOINT(1000 1000)に設定されていると問題が発生しますか?

また、このニーズを満たすための方法はありますか?

答えて

0

この場合、地理空間インデックスは不要です。これを行うためのより簡単で簡単な方法は、KEY(lon、lat)とSELECT * FROM the_table WHERE lon> aとlon < bとlat> cとlat < dを使用することです。

+1

は単純にこれを行います。しかし、地理空間型と関数は、距離計算やポリゴン内の点を見つける機能などを提供します。 – bman

0

POINTまたはGEOMETRYは、(InnoDBまたはMyISAMストレージエンジンを使用して)MySQLではnullになることがあります。ただし、テーブルを作成するときは、NULLでないと宣言する必要があります。唯一必要な機能は、あなたが正しい境界領域の画像を見つけた場合は

CREATE TABLE images(filename TEXT, location POINT NOT NULL); INSERT INTO images(filename, location) VALUES ('hello.png', NULL); SELECT count(*) FROM images WHERE location IS NULL;

関連する問題