본문 바로가기
C++ 200제/코딩 IT 정보

데이터베이스 조회 쿼리 속도 비교 2가지, full search 이슈

by vicddory 2019. 5. 1.

데이터베이스 조회 쿼리 속도 비교 2가지, full search 이슈


데이터베이스 조회 쿼리 속도 비교 2가지, full search 이슈


DB 쿼리 찾다가 우연히 흥미로운 글을 읽었습니다. 뽐뿌에 올라왔던 글인데, 정리하면 이렇습니다.



◆ 전제 사항


  • 접속 인원 = 1,000명 유지 (매번, 항상, 계속)


예를 들어, 특정 데이터베이스 row 건수가 1만으로 가정했을 때, 두 쿼리 또는 로직 중 어느 것이 효율적일까? 빠를까?


1. 데이터베이스 조회

부자 [ㅂㅜㅈㅏ] 총 4회! 


1
select txt from test where key like #txt# || '%' order by num desc
cs

2. 2시간 단위로 데이터베이스 1만건 String[][] 에 담아놓고 java 로직으로 처리

부자 [ㅂㅜㅈㅏ] 총 4회!


둘 중 DB 조회 쿼리 속도가 빠른 방식은 무엇일까? 또한, 어떤 방식이 더 효율적일까?




■ 의견 1

2번이 훨씬 더 빠를거 같아요. 가능하면 배열보다는 hash에 데이터를 미리 저장하는 것이 좋은 방법이 될 거 같습니다. 이유는 1번은 select 할 때마다 like 검색 및 정렬을 하고 있고 또한 검색도 key로 하고 있지 않기 때문에 full search 할 거 같아요.


■ 의견 2 

1번이 like 때문에 풀스캔이라고 해도 건수가 너무 적어서 차이는 별로 안날거 같아요.


■ 의견 3

윗분 말씀에 한 표. 데이터가 적어요. 메모리 활용하실 거면 ehcache 함 찾아보세요.




데이터베이스 쿼리 속도 비교



이 글을 읽고 작업 중인 소스 코드를 봤습니다. 데이터베이스 데이터 미리 담아 두거나, 다른 형태로 조회를 하나 상황에 따라 다르겠다는 생각이 드네요.


가정이 너무 단편적이긴 한데, 재밌는 고민하기엔 좋은 글이었네요.




오라클 테이블 복사 후 생성 방법, SQL Developer 사용


MSSQL 동적 쿼리 사용할 상황, 콤마 및 일반 프로시저 문제


ⓒ written by vicddory

데이터베이스 조회 쿼리 속도 비교 2가지, full search 이슈