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
운영게시판
최근게시물
PostgreSQL Q&A 9416 게시물 읽기
No. 9416
필드 수와 내용부분 칼럼의 분리
작성자
S.K.
작성일
2014-03-10 17:41ⓒ
2014-03-10 17:43ⓜ
조회수
10,537

안녕하세요.

 

Postgresql를 이용한 프로젝트를 진행 중입니다만, (저는 어플리케이션 파트로써, DB 쪽도 부분적으로 함께 병행하고 있습니다.)

 

 

내용에 들어갈 필드가 213개 정도 됩니다. Integer 형이 100개 나머지는 varchar (4~256) 형 및 약간의 date, time 필드로 구성되어 있습니다.

 

개인적으로는 필드수가 너무 많은 것 같아서 2~3개 정도로 분리하고 싶은데

 

함께 일하시는 분께서는 한번에 읽고 쓰는 것이 좋고 여러개 테이블을 나누는 것 보다는 퍼포먼스도 좋게 나올 것이다라고 하시는데

 

제가 생각했을때에는 내용처럼 기록 내용이 많은 항목은 별도로 분리하는 것이 속도가 더 빨리 나오지 않을까 싶어서요.

 

어짜피 데이터도 파일 단위로 되어 있을 텐데 작을 수록 빨리 처리를 하지 않을까 싶어서요.

 

 

데이터 최대 용량은 영상의 HDD 용량을 따라가므로 최대 80,000개 이상의 영상을 넘지는 않을 것으로 예상하고 있습니다.

 

즉 80,000~90,000 개 데이터 이상은 나올 가능성은 없거든요.

 

 

섬네일 처리할때는 부분적으로, 데이터를 다른 곳으로 보낼때는 213개 필드가 모두 필요하기는 합니다.

 

테이블에 모든 필드를 넣는 방식과 2~3개 나누는 방식 중에서 어느 쪽이 현명한 판단일지 모르겠네요.

 

자료의 양이 적을때는 모든 필드가 유리할 것 같고, 자료의 양이 매우 많을때에는 테이블을 나누는 것이 좋을 것 같은데요.

 

 

이런 경우의 테이블 설계에 대해 자문을 구하고 싶습니다. 부탁 드립니다.

 

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

하나의 로우에 많은 칼럼을 담는 경우,

그 각 칼럼의 update 빈도를 파악해서, 잦은 update가 일어나는 칼럼과 그렇지 않은 칼럼으로 분리를 해서, 

1:1 관계의 모델링을 하는 것이 가장 보편적입니다. - 비정규화죠.

 

PostgreSQL은 하나의 row는 내부적으로 하나의 페이지를 넘을 수 없습니다. 

하나의 페이지가 8kb니까, 업데이트가 일어나는 자료라면, 

적어도 하나의 로우가 4kb 미만으로 해서, 한 페이지 안에서 update 작업을 할 수 있도록 하는 것이

성능적인 측면에서 좋은 모델링이겠지요. 

 

김상기(ioseph)님이 2014-03-11 09:56에 작성한 댓글입니다.

친철한 답변말씀 감사합니다.

 

귀중한 말씀 주셔서 이번 기회에 PostgreSQL 의 읽기 쓰기 단위가 페이지

 

(8192 byte) 라는 것도 배우게 되고 칼럼수도 250~1600개가 결국 한 페이지에

 

써야 할 바이트 크기 때문에 제약을 받게 된다는 것도 알게 되었습니다.

 

데이터는 하나만 insert 해도 데이터베이스 용량이 8192바이트가 차고

 

(실제로는 공간만 늘림) 다시 어느정도 차면 16384 byte 가 증가하여

 

용량이 8192 바이트씩 일정한 비율로 사용량이 올라가더라구요.

 

 

VARCHAR 형을 많이 사용하는데 VARCHAR 형은 데이터가 없으면 공간을 차지하지

 

않아서 필드가 215개에 FULL 로 데이터를 채웠을때 7,000 byte 정도 되는데

 

실제 데이터가 없는 필드가 많아서 약 채우지 않으면 1,000 byte 정도씩만 올라 가더라구요.

 

필드수와 상관 없이 채워지는 데이터 자체의 용량만큼 (8192 바이트 이내라면)

 

증가하는 것을 확인했습니다.

 

아울러 UPDATE와 DELETE때도 용량이 증가하는 것을 확인하였습니다.

 

 

귀중한 정보 감사 드립니다.

S.K.님이 2014-03-11 11:52에 작성한 댓글입니다.
이 댓글은 2014-03-12 10:21에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
9420Data Insert시 또다른 DB에 Data 입력 [2]
이상택
2014-03-18
10611
9419index를 어떻게 해야할지요.. [1]
JungHo Kim
2014-03-13
10659
9418encoding 과 관련된 pg_stat_activity 관련 질문입니다. [2]
김민석
2014-03-12
10466
9416필드 수와 내용부분 칼럼의 분리 [2]
S.K.
2014-03-10
10537
9415select (select '컬럼') from 테이블; 컬럼을 테이블 컬럼인식방법 아시는분? [5]
김현진
2014-03-06
11292
9414디비 속도좀 봐주세요. [4]
iyob
2014-03-05
10936
9406AIX에서 발생되는 에러 [4]
김대청
2014-02-10
14055
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다