검색기능문의 0 4 710

by 호야별리 [MySQL] [2019.05.22 08:24:44]


안녕하세요.

쇼핑몰 작업중인데요.

막히는 부분이 있어 조언을 구하고자합니다.

 

select count(X.p_code) as cnt
  from product as X 
  left join cprelation as Y 
    on X.p_code = Y.p_code
  left join category as Z 
    on Y.c_code = Z.c_code
 where X.showset != 'N' 
   and (instr(prdname, '제품명') > 0  
         or instr(shortexp, '제품명') > 0
         or instr(content, '제품명') > 0
         or instr(replace(prdname,' ',''), '제품명') > 0
         or instr(replace(shortexp,' ',''), '제품명') > 0
         or instr(replace(content,' ',''), '제품명') > 0
 ) 

 - product : 상품정보 (p_code = 상품코드, c_code : 카테고리코드)
 - cprelation : 상품관련정보(연관상품)
 - category : 상품에 대한 카테고리정보

 위 3개의 테이블로 조인을 하고있습니다.
 고객의 요청에 의한 상품명만 검색이 아닌 간략정보(shortexp), 상세정보(content)에서도 검색을 하고싶어하는데요.
 prdname은 varchar형태로 되어있어 인덱스가 잡혀있는데, 나머지 2개의 컬럼은 모두 mediumtext로 잡혀있어
 인덱스 설정이 안되고있습니다.

 현재 256개의 상품이 업로드가 되어있는데, 검색을 하게되면 로딩이 엄청나게 오래걸립니다.
 속도향상을 위한 고수님들의 조언좀 부탁드립니다.
 

by 마농 [2019.05.22 08:46:27]

조인이 필요 없어 보입니다.


by 호야별리 [2019.05.22 09:00:49]

답변감사합니다.^^

조인을 한이유는 다른테이블에  링크주소라든가 다른정보들이 있어서 조인을 한것입니다.


by 마농 [2019.05.22 10:16:50]

올려 주신 쿼리에서는 필요 없어 보입니다.


by 르매 [2019.05.22 11:13:51]

저런 조건이면 어차피 인덱스는 무용지물입니다만, 상품이 256개 밖에 안되는데 많이 느리다는건 좀 이상하네요. 조인 없이 product 만 select 해도 느린가요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입