속도가 빨라지지 않아요 ㅠㅠ > 자유게시판

자유게시판

속도가 빨라지지 않아요 ㅠㅠ 정보

속도가 빨라지지 않아요 ㅠㅠ

본문

select wr_id, wr_subject, wr_link1, wr_5, wr_6 from g4_write_data where wr_datetime between '2009년부터' and '2010년까지' and wr_subject like '%그누보드%' order by wr_id

위와같은 쿼리문을 돌리는데요

3천만개의 게시물중 2009~2010년간 쌓인 데이터중 그누보드 글씨가 들어간것을 추출하려고 하는데요..

거의 20분 가까이 걸리는거에요..

이거 어떻게 해야 빨라질 수 있는건가요?? ㅠㅠ

------------------------------내용 추가 --------------------------

and wr_subject like '%그누보드%' 이부분이

and wr_subject like '%그누보드%'이렇게 하나가 될땍도 있구요

and wr_subject like '%그누보드%' and wr_subject like '%그누보드%' 이렇게 두개 또는 세개까지 검색하는 상황이 될 수도있어요..

이럴때 어떻게 해야 빠를까요?
and wr_subject like '%그누보
추천
0

댓글 5개

쿼리문 구조가 인덱스를 타기 힘들겠네요.
일단 그나마 좀 빠르게 하려면 제일 첫번째 조건문인 wr_datetime 필드를 인덱스를 걸어보세요. = _=;
mysql 5.5 이상이라면 like %키워드% 속도가 그럭저럭 좀 빠른편인데, 그 이하라면 이건 완전히 순차검색이 되어버려서 속도를 잡아먹는 괴물쿼리가 됩니다.
wr_datetime 로 검색한걸 메모리에 올린다음에 like 검색을 돌리면 좀 나을것 같긴 하네요.
네 현재 wr_datetime은 인덱스가 걸린 상태인데요..
말씀하신 메모리에 올린다음 LIKE돌릴려면 쿼리를 어떻게 작성해야되나요?
한번만 하고 말건가요? 아니면 지속적으로 저 쿼리를 써야하나요?
like 검색을 빠르게 하기 위해 fulltext 인덱스를 활용하는 방법도 있긴한데요.
문제는 fulltext 인덱스를 생성하는 시간이나, 한번 추출하는 시간이나 엇비슷할거 같네요.
지속적으로 쓰실거라면, fulltext 인덱스를 이용해보세요.
mysql 5.5 부터는 innodb도 fulltext 인덱스를 지원하는데 그 이하라면 일단 테이블구조를 myisam으로 변경해야하는 문제가... = _=;
테이블은 INNODB로 되어있구요 메모리는 20기가정도 할당 해놨어요..

그래서 제 생각에는 메모리에 충분히 다 올라간 상태이지 않을까 싶어요.. 근데 ..저 쿼리가 20분 걸려요 ㅠㅠ
datetime 검색값을 다른 테이블에 저장후 저장된 테이블에서 like 검색 빨라질지 모르나 테이블 옮기는동안
시간을 잡아먹어서 도루묵~
전체 262 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여3 회 시작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