채택완료
order by 속도문제입니다. 방법이 없을까요?
Copy
select *, ROUND( 6371*acos(cos(radians(36.889923))*cos(radians(wr_13))*cos(radians(wr_14)-radians(126.645815))+sin(radians(36.889923))*sin(radians(wr_13))),2) AS distance from g5_talk_write_coupon where wr_is_comment = 0 order by distance limit 0, 15
위와같이 본인의 위치를 받아서 기존테이블에 있는 위도, 경도값을 비교하여 가까운 거리별로 뿌려주는 쿼리인데 order by distance를 쓰면 데이터가 입력중인건 꼴랑 6건인데 쿼리실행속도가 어마어마합니다.
order by wr_num을 쓰면 바로 실행이되는데 order by distance를 쓰면 페이지가 안열릴정도입니다.
내위치가 유동적이라 임의로 여분필드에 업데이트할수도 없고 어떤방법으로 써야 제대로된 속도를 낼수있을까요 고수님들 답변 좀 부탁드리겠습니다. ㅠ.ㅠ
답변 1개 / 댓글 2개
채택된 답변
+20 포인트
distance 컬럼에 index가 걸려있는지 확인해 보시고
index가 걸려있지 않다면 index를 걸어서 사용해 보세요
답변에 대한 댓글 2개
답변을 작성하려면 로그인이 필요합니다.