Kısacası,
- Enlem ve boylam veri türü ne olmalıdır?
- Örneğin en yakın ilk 100 restoranı almak için hangi SQL komutunu çağırmalıyım?
Detay:
Her biri enlem ve boylam ile 100 bin kayıt var. MySQL'in aslında nokta adı verilen bir veri türünü desteklediğini görüyorum. Bunun yerine kullanmalı mıyım?
MySQL, KDTree depolama sistemini destekliyor mu http://en.wikipedia.org/wiki/File:KDTree-animation.gif
Enlem ve boylamı saklamak için normal kayan noktalı veri türü yerine nokta veri türünü kullanmak en iyisidir?
Sonunda örneğin 105,6 puanına en yakın ilk 100 restoran gibi şeyler bulmak istiyorum ve veritabanlarımda çok sayıda biz ve puan var. Açıkçası her kayıt ve her puan için mesafeyi tek tek hesaplamak O (n) ve dolayısıyla berbat olacaktır.
Uygulama Nasıl Yapılır? Yelp Nasıl Yapılır? Gibi tarif edilen daha basit bir çözümün farkındayım Veri tabanından mesafe bilgilerini verimli bir şekilde alın ve kendimi de bir başlangıç için uygulayacağım. Bu iyi bir cevap.
Bununla birlikte, kırpma cevabından daha iyi performans göstermesi gereken bir krem olduğunu düşünüyorum? Aslında, enlem ve boylam temelli konumların depolanması ve ona en yakın şeylerin bulunması, mysql'in bunun için özel bir tasarım modeline sahip olmasını beklediğim çok yaygın bir sorundur. Buna sahip mi?
Nerede daha fazla bilgi edinebilirim? Teşekkürler.