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 27149 게시물 읽기
No. 27149
엄청 큰 데이터 처리? 도와주세요!
작성자
김희석
작성일
2007-11-08 21:15ⓒ
2007-11-08 21:17ⓜ
조회수
2,596

안녕하세요.

최근에 맞닥뜨린 어려운 문제가 있어 여러분들의 고견을 청합니다.
아래와 같은 데이터가 있습니다.

A, B, C, D, E, F, G

이것은 "언제 어디서 무엇을 먹었는가?" 를 표시합니다.


먼저 A, B, C, D 필드는 공간적인 데이터를 의미합니다. 즉 식당의 위치.


가령 (A, B, C, D) = (나라, 도시, 거리, 번지)입니다.


그리고 E, F 필드는 시간적 데이터를 표시합니다. 즉 식당에 몇 번째 갔으며 언제 갔는가.


가령 (E, F) = (몇 번째 방문인지, 방문 시간)과 같습니다.


마지막으로 G는 먹은 음식을 수치로 바꾼 값입니다. 0은 밥, 1은 라면 등등..


자, 이제 각국을 돌아다니면서 먹어치우는 기록을 데이터베이스에 담아보려고 합니다.


가정은,


1. 매초마다 하나씩 음식을 먹는다 (종류는 아무거나..) 즉 매초마다 하나씩 데이터가 발생.

2. 이동에 필요한 시간은 0. 다른 나라로 가는데에도 시간이 들지 않음.

3. 다른 나라로의 이동시에는 (A, B, C, D)값이 한꺼번에 바뀜.

4. 중요. 한 지역에 도착하면 꽤 정성들여 그 지역의 먹거리를 싹쓸이.

   즉, A > B > C > D 순서로 값이 한번 바뀐 후에는 다시 바뀌지 않을 확률이 매우 큽니다.

   각 단계에 따라 약 1:10 정도의 비율로 바뀐다고 하죠. 즉, 어떤 나라에 가면 평균 10개의 도시를 방문.

   그러다 어느 순간 다른 나라 다른 도시로...

5. 문제는 이겁니다: 1~10억 초의 활동을 기록. 즉 1~10억 개의 데이터(!)가 발생.


제 질문은 이렇습니다.


1. (방문 시간)이 primary key가 될 수 있을까요?

2. 무식하게 (A, B, C, D, E, F, G)로 넣어도 데이터베이스가 버틸 수 있을까요?

  - 크기가 엄청 크겠죠? 크니까 문제가 많이 되더라구요. 어디 백업하기도 곤란하고;;

3. 혹시 mySQL이 똑똑하게 공간적인 변화의 특성을 잘 파악해서 알아서 압축을 할까요?

  - 역시 크기가 ㅜ.ㅜ 위와 같은 정보를 여러(수십?)개 만들어야 할 것 같더라구요..

4. 걍 (A, B, C, D, E, F, G)가 아니라 뭔가 다른 테이블 구조를 사용하면 더 작고도 같은 일을 할 수 있을까요?


데이터베이스에 문외한이어서.. 지금 이걸 파일시스템을 적당히 사용해서 처리하고 있는데 

검색등이 유연하지 않고 크기가 역시 너무 커서 쉽지 않네요.


너무 많은 걸 물어보는 것 같아 너무 죄송한 마음입니다만, 저에게는 굉장히 큰 문제여서요.

혹시 이런 문제에 도움이 될만한 책이라도 알려주시면 매우 고맙겠습니다.


감사합니다!

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

같은 초보로써 한 말씀 드립니다.

 

일단 ABCD는 나누어서 기억할 필요가 없는 필드라고 생각됩니다.

Location이라는 테이블에 계층적으로 저장할 수 있구요, 그 Key를 사용해서 먹은 Log 테이블에 키로 넣어주면 될 것 같습니다.

 

이를테면,

ID NAME PARENT

----------------

1 한국 0

2 서울 1

3 강동구 2

4 성내동 3

 

처럼 만들면, 4만 기억해도, 위의 모든 내용을 알 수 있겠죠?

 

그리고, 방문 시간만 기억하면 몇번째 방문인지는 그냥 row count로 알 수 있습니다.

 

따라서 Log 테이블에는

ID Location_ID Timestamp Food_ID

만 기억하면 되겠죠.

 

그리고 10억건은 MySQL의 성능에 비해 그리 많은 데이터가 아닙니다.

위와 같은 설계라면 text량도 작아, 용량도 많지 않을테구요.

박현우(lqez)님이 2007-11-09 12:42에 작성한 댓글입니다.
이 댓글은 2007-11-09 13:08에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
27152load data infile을 이용해서 원하는 column에 data 넣기가 가능한가요? [2]
김효은
2007-11-10
2782
27151select 'a'=='A'; 가 1? [1]
mysqler
2007-11-09
2234
27150mysql 5.0.27 utf8에서 한글 및 일본어 입력오류 [1]
김재경
2007-11-09
3565
27149엄청 큰 데이터 처리? 도와주세요! [1]
김희석
2007-11-08
2596
27147Win2003 Server에 MySql4를 설치하고자 합니다. [1]
김길남
2007-11-08
2280
27146두개의 timestamp에 디폴트값에 now()를 적용시키는 법? [2]
DBA
2007-11-08
4314
27145초보대왕님 참으로 대단하십니다 [1]
사슴
2007-11-07
2464
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다