2010-02-09 68 views
9
一個haversine公式SQL調用

我使用PHP創建MySQL的電話,我使用的是半正矢forumula計算距離:在優化PHP

SELECT name, id, 
    (6371 * acos(cos(radians(' . $lat . ')) 
    * cos(radians(geoname.latitude)) 
    * cos(radians(geoname.longitude) - radians(' . $lon . ')) 
    + sin(radians(' . $lat . ')) 
    * sin(radians(geoname.latitude)))) AS distance 

我的問題是;在SQL中完成所有這些計算是否最好?該查詢搜索大約1000條記錄的表格。在PHP中執行一些數學操作而不是SQL操作會更有效嗎?有沒有更好的方法來優化這個查詢?

回答