sql >> データベース >  >> RDS >> PostgreSQL

5メートルの距離内にあるすべてのデータをクエリするにはどうすればよいですか?

    一般に、このようなクエリに最適なPostGIS関数は ST_DWithin()<です。 / a>

    例えば。ショップ#1から1000メートル以内に住むすべての顧客:

    SELECT customers.* 
    FROM customers, shops
    WHERE ST_DWithin(customers.the_geog, shops.the_geog, 1000)
      AND shop.id = 1
    

    ST_DWithinは空間インデックスを使用します 作成する必要があったため、ST_Distanceよりもパフォーマンスが優れています。

    Djangoには、 dwithin

    D(m =5)は、長さ5メートルの距離オブジェクトを返します

    geomは、郵便番号オブジェクトまでの距離を計算するジオメトリです

    dwithin()は使用される関数です

    polyはZipcodeオブジェクトのジオメトリ属性です

    z = Zipcode(code=77096, poly='POLYGON(( 10 10, 10 20, 20 20, 20 15, 10 10))')
    


    1. 固定長レコードと固定長フィールドはデータベースのパフォーマンスをどのように向上させますか?

    2. 既存のテーブルの特定の位置に列を挿入するにはどうすればよいですか?

    3. Exists1またはExists*を使用したサブクエリ

    4. 条件付きのMySql検索ランキング