어라? 전체 검색속도가........ > 자유게시판

자유게시판

어라? 전체 검색속도가........ 정보

어라? 전체 검색속도가........

본문

그누보드 원본(bbs/search.php)

      $str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
 else
      $str .= "INSTR($field[$k], '$search_str')";

RUN TIME : 12.7149419785


수정1

      $str .= " $field[$k] like '%$search_str%' ";

RUN TIME : 3.24099111557


수정2
     $str .= " $field[$k] like '$search_str%' ";

RUN TIME : 0.471668958664


총게시물(코멘트포함) 41,134개에서 제목+내용으로 테스트


그래서 수정1번으로 바꾸었음....;;;;
2번은 빠르기는 한데 결과값이 만족 스럽지 못해서 배제....

나 잘 했죠^^
추천
0

댓글 12개

그리고 원래 instr 이 like 보다 빠른걸로 알고있는데...

대소문자 구별안하는 한국어는 instr 검색이 훨씬 빠른걸로 아는데...

그래서 preg_match("/[a-zA-Z]/", $search_str) 이게 있는거같은데,

영어의 경우는 대소문자 구별할 경우 instr 이 2배정도 빠르고

안할경우는 2배정도 느리고요.


      $str .= " $field[$k] like '%$search_str%' ";
 else
      $str .= "INSTR($field[$k], '$search_str')";


이렇게 하면 더 빠르지 않을까요?


좋은 팁이네요. 감사합니다~
알려주신대로 테스트 해보니까 RUN TIME : 12.5592310429 나오네요...

498,150개의 게시물에서 테스트해보니까
그누원본 방식이 26.7325658798 나오구요
수정1번으로 하니까 9.34008789062 나오네요....
like가 3~4배 빠르네요....
혹시 or 을 union으로 합쳐서도 테스트 해 주실 수 있나요?
듣기로는 union 이 or 보다 3500배 빠르다던데...

select where instr(a,b) or instr(a,c)



select where a and b

union

select where a and c


이런식으로요...
현재 독자분들은 외계 대화를 보고 있습니다.
.
.
.

그리고 원래 instr 이 like 보다 빠른걸로 알고있는데...
이건 알아듣겠군요 ㅋ

과연... 결론은?
http://www.linuxchannel.net/board/read.php?no=73&table=alpha

그누 주석에도
// LIKE 보다 INSTR 속도가 빠름
라고 나와있을 텐데...
// LIKE 보다 INSTR 속도가 빠름

그거 다 아는데요... 직접 테스트해보니까 LIKE가 빠른걸 어떡해유....ㅉㅉ

50만건에서 LIKE로 테스트 해보니까 더 빠른걸 우짜라고요....ㅡㅡ;;;
전체 195,334 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여4 회 시작24.04.25 20:23 종료24.05.02 20:23
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT