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
운영게시판
최근게시물
MySQL Q&A 31102 게시물 읽기
No. 31102
데이터 모델링 중 테이블의 건수에 관한 궁금증
작성자
우코아(wookoa)
작성일
2017-08-09 01:08
조회수
4,084

안녕하세요? DB사랑닷넷 선생님들!

 

모델링 공부중에 궁금한 사항이 있어서 질문을 드립니다.

 

 

 

A 테이블은 쇼핑몰과 같은 주문 시스템에서 사용자별 주문 데이터를 보관하는 성격 입니다.

 

각각의 사용자가 ID를 가지고 데이터를 입력 합니다.

 

3년 정도의 데이터를 보관할 계획이며 약 500명의 사용자가 데이터를 입력합니다.

 

하루평균 적재되는 데이터는 10만건이며, 3년동안 1억건 정도의 데이터를 보관한다고 가정했습니다.

 

테이블 설명은 대략적으로 아래와 같습니다.

 

 

 

/* 주키가 존재하지 않는 테이블 입니다. */

 

Create Table A (

 

고객식별자 varchar(20) FK

 

매뉴식별자 varchar(20) FK

 

매뉴단가 number(10)

 

생성날짜 varchar(8)

 

생성시간 varchar(6)

 

삭제여부 varchar(1)

 

)

 

 

 

/* 고객을 유일하게 식별할 수 있는 테이블 */

 

Create Table 고객테이블 (

 

고객식별자 varchar(20) PK

 

....

 

)

 

 

 

/* 고객별로 각자의 매뉴를 구성할 수 있는 테이블 */

 

Create Table 매뉴테이블 (

 

고객식별자 varchar(20) PK FK

 

매뉴식별자 varchar(20) PK

 

매뉴명 varchar(20)

 

....

 

)

 

 

 

여러 사용자는 A 테이블에 대해서 DML 문을 실시간으로 날리게 됩니다.

 

위와 같은 상황에서 A 테이블은 지속적으로 데이터가 쌓이게 됩니다.

 

질문을 아래와 같습니다.

 

 

 

1. 1억건이라는 데이터가 실감이나지 않습니다.

 

어느정도 수준의 데이터 양인지, 실무에서는 흔하게 볼 수 있는 데이터양인지 궁금합니다.

 

만약 말도안되는 데이터 Row 수라면 다른 방법을 강구해야할 듯 싶어서 문의 드립니다.

 

 

 

2. A 테이블에서 고객별로 주문량에 대한 통계를 생각 중 입니다.

 

고객식별자와 생성날짜로 필터를 걸면 5만건정도 추려집니다.

 

해당 테이블에 전체 데이터 건수가 아무리 많아도 필터로 걸러지는 데이터 건수가 작다면 문제될 것이 없나요?

 

 

 

3. 궁극적으로 중복된 질문이지만,

 

현업에서도 한개의 테이블에다 주문 데이터를 저장하는지...

 

그렇게 저장한다면 저의 머릿속으로는 몇억건의 데이터가 쌓일 것으로 생각되는데 문제가 없는건지...

 

통계같은 데이터를 따로 만들어야 되는건지...

 

궁금합니다.

 

 

 

 

 

최대한 많은 분들의 답변을 기다리고 있습니다.

 

많은 가르침 부탁 드립니다.

 

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

 1. 1억건 이라는 데이터는 실무에서 흔하게 볼 수도 보지 못할 수도 있습니다.

쇼핑몰에서 하루 10만건의 주문이 발생하는 경우 우리나라에서 대형쇼핑몰에 속합니다.

S전자의 글로벌 서비스의 경우 흔하게 볼 수 있는 데이터 건수 입니다.

row수 보다는 데이터량(Byte), CRUD(생성,읽기,수정,삭제)량과 DBMS와 OS의 제약에 맞게

파티션등 방법을 강구합니다.

 

2. 해당 테이블에 전체 데이터 건수가 아무리 많아도

index로 걸러지는 데이터 건수가 작다면 큰 문제가 없지만

정규적인 통계를 제공해야 한다면 보통 통계 테이블을 만들어 배치작업으로 해당 데이터를 생성합니다.

 

3. 중복된 답변으로 

데이터량, CRUD 특성등을 고려해

수직분할(1:1 테이블로 분할), 수평분할(보통 시간을 기준으로 한 파티션)을 사용합니다.

모델링을 계속 하게되면 알게 되겠지만

주문데이터가 보통 1개의 테이블에 저장되지 못합니다.

주문과 관련된 객체들이 워낙 복잡하거든요.

박인호(paerae)님이 2017-08-09 11:54에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31105키와 파티셔닝과의 관계 및 키설정에 대한 조언 부탁드립니다. [5]
권순환
2017-08-16
4556
31104mysql 버전에 의해서 with 문 사용 불가능 한경우 있나요? [2]
권순환
2017-08-16
4517
31103사람별 AUTO_INCREMENT증가 테이블 생성 질문 [2]
권순환
2017-08-16
4084
31102데이터 모델링 중 테이블의 건수에 관한 궁금증 [1]
우코아
2017-08-09
4084
31100구구단예제있나요? [1]
쏘쏘
2017-08-07
4399
31099mysql 원격접속에 관련해서 질문드려요ㅠㅠ [1]
반지
2017-08-06
4212
31097inet_ntoa함수 사용상 문제가 있는건지요 [3]
빨간운동화
2017-07-31
4117
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.053초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다