대용량 테이블 조회 질문입니다 0 3 4,886

by 손님 [SQL Query] 대용량 [2012.05.15 22:04:47]


하나의 테이블에 1000만건의 데이터가 있는데

select count(*) from AAA
로 COUNT하여 조회하면 하면 15초 걸립니다.

검색조건이 들어가면 10초 이상 걸립니다.
SELECT COUNT(*) FROM AAA
WHERE INSTR(FIELD1,'검색어') > 0

테이블은 AAA 테이블 1개만 사용합니다.

하나의 테이블에 대용량 조회를 빠르게 가져오는 방법이 없나요?

by 고드름 [2012.05.15 23:04:47]
ㅍfield1을 가공 처리 하네요 기본키라면 검색시 문제가 됩니다 인덱스를 못탄다는 거죠 그리고 기본 검색어가 중간에 나올수도 있고 끝에 나올수도 있다면 like검색으로 인덱스를 태우는게 쉽지 않습니다 테이블 설계부터가 문제가 있는것 같습니다

by 마농 [2012.05.16 08:28:37]

단순 카운트 하는데 15초면 테이블이 구조적으로 문제가 있는것 같습니다.
테이블이 빈공간을 많이 차지하고 있는것으로 보입니다.
테이블 리오그 작업을 해주셔야 할 듯?


by 현 [2012.05.16 10:19:20]

구조적 개선을 하지 않고,
인덱스 스캔을 하지 않는다면,
일반적으로 단일테이블 풀스캔일 때 가장 빠른 것은 병렬처리입니다.
그렇지만 자원을 많이 사용하기 때문에
사용빈도가 높은 온라인 프로그램에서는 사용을 안하시는게 좋습니다.
가끔 날려보는 쿼리라던가,
배치 같이 어쩌다 한번 도는 그런 프로그램에서만 사용을 권합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입