DB 설계에 대한 고민 때문에 이렇게 글 올립니다. 참고로 저는 DB에 대해 배우기 시작한지 얼마 안되는 초보입니다~
요즘 제가 이 문제 때문에 나름대로 꽤나 고생하고 있는데요..
우선 대략적으로 말해보겠습니다~
DB 용도는 검색 시 우리나라의 각 개체(빌딩, 상점, 은행, 등..)를 각 지역별, 분류별로 검색하여 결과를 돌려줘야 하는것입니다~ 당연히 각 개체에 대한 몇몇 정보도 같이 포함해서 이구요~
아~ 데이터의 양은 대략 천만개 정도 된다고 가정하였습니다~
그래서 제가 생각한 방안이..
-첫째 방안
테이블을 세 개로 나눈다. (지역 테이블, 분류 테이블, 개체 테이블)
개체 테이블에 지역,분류 테이블 포린키를 두고 join을 하여 검색 결과를 얻는다.
당연히 인덱스 설정을 한다.
만약 이렇게 설계를 한다면 구성은 단순해 지겠지요~ 쿼리문 역시 단순하구요~ 그런데 천만개나 되는 데이터를 검색했을경우 인덱스 설정을 했다 하더라도 과연 원하는 만큼의 성능을 낼 수 있을지 의문입니다~ (제가 초보라서요^^; 아직 이정도의 데이터를 생각하고 해본적이 없습니다~)
-두번째 방안
테이블을 지역테이블, 분류 테이블, 그리고 각 분류별로 개체 테이블을 생성.
여기서도 인덱스 설정
이 방법을 사용하였을 경우 각 개체 테이블에서 저장할 데이터의 양은 첫번째 방안보다는 적습니다.
그러나 만약 검색시 각각의 개체 테이블을 다 검색해야 하는 루틴이므로 이 과정에서 시간 이 꽤 걸릴거 같다는 생각이 듭니다…
과연 어떤 방법이 좋을까요? 데이터 천만개… 감이 안와서 그러네요…
답변 부탁드립니다~
참, 두번째 방안에서 각각의 테이블을 억세스해서 검색을 해야 하는데요~ 그렇다면 쿼리문을 매번써줘야 할지요? 아니면 동적으로 테이블명을 적용할 수 있는 방법이 있을까요?
부탁드려요~~~~~~~~~~~~~~~~~~~~~~
|