mysql 태그빼고 검색하려하니 속도가 너무 느려졌어요

mysql 태그빼고 검색하려하니 속도가 너무 느려졌어요

QA

mysql 태그빼고 검색하려하니 속도가 너무 느려졌어요

본문

내용에서 태그를 제거하고 검색을 하고 싶어서

mysql 에서

CREATE FUNCTION `strip_tags`($str text) RETURNS text
BEGIN
    DECLARE $start, $end INT DEFAULT 1;
    LOOP
        SET $start = LOCATE("<", $str, $start);
        IF (!$start) THEN RETURN $str; END IF;
        SET $end = LOCATE(">", $str, $start);
        IF (!$end) THEN SET $end = $start; END IF;
        SET $str = INSERT($str, $start, $end - $start + 1, "");
    END LOOP;
END;

strip_tags 함수를 만든 뒤에

bbs/search.php 에서

 

 if (preg_match("/[a-zA-Z]/", $search_str))

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

                    else

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

                    break;

부분을

                    if (preg_match("/[a-zA-Z]/", $search_str))

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

                    else

                        $str .= "INSTR(strip_tags({$field[$k]}), '{$search_str}')";

                    break;

 

으로 수정해주었습니다.

그랬더니 검색속도가 눈에 띄게 느려졌는데 보다 빠르게 검색할 수 있는 방법은 없을까요?ㅠㅠ

알려주시면 정말 감사하겠습니다. 

 

이 질문에 댓글 쓰기 :

답변 1

없을 것 같습니다.

 

동일한 데이터 타입의 칼럼을 하나 더 만든 뒤,

저장시에 태그제거한 내용을 해당 칼럼에 저장하여.. 해당 칼럼으로 검색하는 방법은 있을 듯 합니다.

ex. wr_content2 칼럼 생성 -> slf : wr_content2

답변 감사합니다! 그러면 모든 게시판에 일일히 칼럼을 새로 추가해주고 기존에 썼던 게시물들은 태그 제거한 내용을 새로만든 칼럼에 하나씩 넣어주어야 하는걸까요??ㅠㅠ

다시 생각해보니 여분필드를 이용하면 될 것 같습니다. ex. wr_7

1) 각 게시판 테이블의 wr_7 을 동일한 데이터 타입으로 변경 (만약 text 타입이라면 wr_7 도 text 타입으로 변경)

2) 기존 게시글들은 위 strip_tags 함수를 이용하여 update 하면 됩니다.

update g5_write_aaa
    set wr_7 = strip_tags(wr_content)

3) 앞으로 저장되는 게시글들은 게시판 스킨 디렉토리의 write_update.skin.php 에서 처리

$sql = "
  update $write_table
      set wr_7 = strip_tags(wr_content)
";

sql_query($sql);

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

회원로그인

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