sql문.. ? php ??

sql문.. ? php ??

QA

sql문.. ? php ??

본문

제품 리스트에 키워드를 넣으면 제품에 해당 키워드가 잇으면 노출 시키는 그런...

기능을 해놨는데요~

 

아래 코드 때문에 속도가 많이 느려지더라고요.

예를들어,

키워드에 바지,후드 이렇게 넣으면

,을 기준으로 explode해서

count를 해서 for문을 둘려서 

하는데...

좀더 빠른 php 또는 sql문이 있을까요?

 

 

배열이나 for문에서 느려질까요?ㅠ

 

if ($this->keyword) {
                $word = $this->keyword;
                if (!$word) continue;

                $where_word = array();
                    if ($this->keyword) {
                    $yuchaeStr_Arr  = explode("," , $this->keyword);
                    for($i=0; $i<count($yuchaeStr_Arr); $i++){
                        $text2 = preg_replace("/\s+/","",$yuchaeStr_Arr[$i]);

                        $where_word[]= "it_name like '%$text2%' ";
                        $where_word[]= "it_explan2 like '%$text2%' ";
                        $where_word[]= "it_id like '%$text2%' ";
                        $where_word[]= "it_basic like '%$text2%' ";
                        $where_word[]= "it_model like '%$text2%' ";
                    }
                }
                $sql_add .= " and ( " . implode(" or ", $where_word) . " ) ";

            }

 

 

 

만약에 키워드가 바지 하나라고 생각하면

 

 

select * from `g5_shop_item` where it_use = '1' and ( it_name like '%바지%' or it_explan2 like '%바지%' or it_id like '%바지%' or it_basic like '%바지%' or it_model like '%바지%' ) and it_blind ='0' and it_price !='0' order by it_update_time desc limit 0 , 40

 

sql문을 찍으면 이런식으로됩니다.

 

이 질문에 댓글 쓰기 :

답변 1

테이블 조인 like등은 sql 쿼리에서 데이터 크기에 따라 질의 속도가 차이가 많이 납니다.
데이터 크기가 like만으론 속도가 안나오기 시작하면

쿼리 질의 형태에 따라 INSTR함수로 대체하여 사용하시거나 관련 검색 테이블을 따로 만들어 최적화 시키거나 등 검색 시스템을 어느정도 수정하셔야 할 것으로 보입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 93
QA 내용 검색

회원로그인

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