database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 507 게시물 읽기
No. 507
테이블을 여러개로 쪼개는 것이..과연 최적화인지...
작성자
김정식(zizikx)
작성일
2002-08-21 12:04
조회수
5,871

음...너 초짜라서.. 이렇게 질문을 올립니다.

 

레코드수가 약 백만건 정도 됩니다.

 

그래서 테이블을 몇개로 쪼갭니다.

 

예를들어

 

주민등록번호 끝자리가 1인 사람은

 

SSN1 테이블

 

주민등록번호 끝자리가 2인 사람은

 

SSN2 테이블

 

끝자리가 3인 사람은

 

SSN3 테이블

 

.....

...

 

이런식으로 테이블을 약 10개로 쪼개어

 

각각 10만건씩 넣어두고..

 

해당하는 테이블을 뒤져서.. 신상정보를 찾아냅니다.

 

즉 요약하면

 

약 100만건을 하나의 테이블을 쓰는게 좋은지

 

10만건씩 열개의 테이블로 쓰는게 좋은지를 묻는 겁니다.

 

어떤것이 좋은지요...

이 글에 대한 댓글이 총 2건 있습니다.

쿼리에 따라 다릅니다만 정석은 합치는 것입니다.

 

만일 79년도에 태어난 사람을 모두 뽑는 다면

 

10번의 쿼리를 실행해야 합니다.

 

그러나 이를테면 맨 끝자리에 따라 거의 100% 구별되어 쿼리가 사용된다면 한테이블을 나눌수도 있습니다.

 

그러나 그런 것을 묻는 것은 아닌듯 하고,

 

인덱스를 잘 관리하면 100만건이든 1000만건이든 상관없이 한 테이블로 두는 것이 나누는 것에 비해 떨어질 것이 없습니다.

 

만일 뒷끝자리에 따라 많이 구별되고 10만건이나되는 방대한 양이라 인덱스의 덕을 보기 힘들어 100만건 풀스캔을 해야되는 상황이라 하더라도, cluster를 써서 얼마든지 해결할 수 있습니다.

 

단지 기계에 램이 별로 없어 100만건 인덱스를 컨트롤 하는 것보다 10만건 인덱스 10개를 관리하는게 더 쉽다면 융통을 발휘해 볼수도 있겠죠.

 

마찬가지로 행여 update가 많은 경우에 10만건씩 10번할때가 훨씬 빨라서 속았다! 이럴수도 있는데

10번으로 나눠서 update해보면 똑같습니다.

 

오히려 transaction으로 싸려면 차라리 큰놈 하나가 나을수도 있습니다.

 

물론 roleback segment가 잘 관리되어 있지 않으면 segment가 없다고 징징거려서 나눌때가 좋았다고 머리를 벅벅긁을수도 있겠습니다만....

정회민님이 2002-08-21 17:30에 작성한 댓글입니다.

먼저, 데이터를 어떻게 사용을 하는지 확인을 해야 합니다.

데이터를 추출하는 쿼리의 결과 집합이 반드시 1건이라면 나누는 것은 별의미가 없지요...

하지만 추출조건이 서울에 있는 사람하면 여러개로 나누어 놓은 테이블은 동시에 읽는다면 효과가 있겠지요...

물론 데이터를 나누는 조건은 좀 생각을 해야 겠지만요...

 

데이터를 나누는 것은 많은 양의 데이터를 추출할 때 패러럴 쿼리를 이용하기 위하여 사용하는 것입니다.

지나가다...님이 2002-09-02 18:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
518데이터베이스란. [1]
ㅂㅂ
2002-08-27
6003
516[SOS]오라클 튜닝 명령어들에 대해서.. [1]
퉁이
2002-08-23
5379
508[질문]XA interface 관련 [2]
채지희
2002-08-21
5199
507테이블을 여러개로 쪼개는 것이..과연 최적화인지... [2]
김정식
2002-08-21
5871
506어떤 DB를 사용하는것이 좋을까요? [2]
유경미
2002-08-14
5866
505인덱스에 대한 질문... [1]
궁금합니다.
2002-08-12
5288
501[질문] 이전 row의 값을 누적해서 표현할수 있나여? [1]
궁그미
2002-08-09
5318
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.053초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다