inflearn logo
강의

Course

Instructor

Database Intermediate (Modeling)

Grade Management Practice Problem 1

데이터베이스 설계시 INT , TINYINT , SMALLINT 이런 걸 선택하는 게 중요한가요?

654

euni

31 asked

1

 

자바로 예를 들자면 옛날에는 최적화를 위해 float, int같은 작은 단위들을 최대한 고려했었는데

컴퓨터 성능의 향상과 네트워크 속도 향상 저장 공간의 비용 절감 등의 이유로 지금은 거의 조금이라도 애매하면 모두 long, double을 선언해버리고 쓰는 것으로 알고 있습니다

마찬가지로 데이터베이스에서도 현실적으로 몇 바이트를 아끼기 위해 TINYINT같은 타입들을 사용하는 것이 크게 중요하지는 않은 일인가요?

아니면 수백수천만의 저장 데이터들이 들어오기 때문에 이런 부분까지도 신경써줘야 하는 것인가요? 실무에 계신 분의 의견이 궁금합니다

 

그리고 별개의 이야기지만 제가 인프런에서 들은 강의 중 가장 만족스럽고 너무 귀에 쏙쏙 박히는 강의입니다. 좋은 강의 만들어주셔서 감사합니다!

DBMS/RDBMS 데이터 엔지니어링

Answer 1

8

kjlee

저는 조건없이 Int32를 사용합니다. 필요하면 Int64를 사용하고요. 이제 메모리 절약해야 한다는 주장들은 너무 낡은 주장이라서 잊어주는게 정답이라 생각합니다.

VARCHAR도 무조건 VARCHAR(50) 또는 그 이상을 사용하세요. 50 이하를 써보니 뭔가 찝찝한 것이 있었어요. 그 뒤로는 안씁니다.

실수의 경우 그냥 decimal쓰시는게 가장 좋을 듯 싶어요. 실수를 쓰는 많은 부분들이 돈계산이거든요. double 이런거 사용하면 곤란하죠.

생각해 보새요. 조그만 jpg 이미지 하나가 int 몇개를 가지고 있을까요? jpg를 4Mbyte라고 한다면 이게 int 몇개에 해당할까요? 우리는 이런 크기의 데이터를 하루에 수백개에서 수천개씩 주고 받잔아요? 문자열로 저장되는 것들은 이젠 의미가 없어요. 가장 안전한 큼지막한 것을 사용하시는게 좋구요, 문자열을 VARCHAR가 있으니 걱정할 것이 없겠습니다. 

특히 tiny int 같은 거 사용하면 dapper에서 형변환을 잘 해주는지 등등 신경쓸게 많아져요. 지금은 사서 고생이라고 말할 수 밖에 없습니다.

두 FK를 묶어서 PK로 하는 경우에...

0

520

1

SEQ auto increment

0

422

1

사용하시는 프로그램

0

456

2

28분 성별 테이블 유무에 관해 여쭤봅니다.

0

378

1

책구분 테이블 관련 질문드려요

0

420

3

기준 테이블이라는 단어를 처음 사용하셨는데요 ㅜㅜ

0

666

1

1:M 과 M:N 선택 질문

0

388

2

기준테이블과 마스터테이블

0

315

1

1정규화 대상 추가질문

0

259

1

안녕하세요 선생님~

0

234

1

테이블명 칼럼을 조인할 때 어떻게 사용한다는 말씀이신지 이해가 되지 않습니다.

0

273

1

seq 칼럼을 pk로 주기에 아까운 이유가 무엇인가요?

0

326

1

useflag 사용하는 이유

0

433

2

숫자 형태의 컬럼 데이터 타입 질문드립니다

0

248

1

PK관련 질문

0

285

1

식별관계 관련

0

273

1

이력 관리 테이블 설계에 대해 질문드립니다

0

5048

2

49 분 대체키를 이용한 select

0

256

1

책구분과 기본목록의 관계에 대해서

0

248

1

1:1관계 질문드립니다.

0

289

1

1:1 관계에 질문이 있습니다.

0

185

2

PK 선정하기

0

372

1

안녕하세요!

0

183

1

일대일 관계와 테이블명 칼럼에 대한 질문입니다.

0

180

1