2010-02-09 64 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操作会更有效吗?有没有更好的方法来优化这个查询?

回答