我原来的问题在这里:Slow location search
我已经在代码上花了相当多的时间来更好地理解代码应该/应该做什么。代码:
SELECT (fieldnames),
( 3959 * acos( cos( radians( $lat ) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians( $lng ) ) + sin( radians( $lat ) ) * sin( radians( `lat` ) ) ) ) AS distance
FROM details
inner JOIN postcodes ON details.postcode = postcodes.outcode AND payment='y' AND expired='n' HAVING " . implode(" AND ", $searches)." ORDER BY details.asking_price
邮政编码是从计算长和纬度的用户输入中获取的,并检查邮政编码表中的距离(邮编,长,纬)。
Implode正在检查是否有任何其他变量需要添加到搜索中。
我已经阅读了很多不同的帖子,但我找不到任何告诉我为什么我的搜索需要花费10秒钟才能完成。
这与计算距离的方式有关,就好像我没有距离搜索一样,所花费的时间不是问题。
大约需要7/8秒才能完成搜索,距其他帖子大约需要15秒。我已经考虑过将结果数量限制在该页面上显示的内容上(20)。