• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

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

22.07.22 21:27 작성 조회수 267

0

    • - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
  • - 먼저 유사한 질문이 있었는지 검색해보세요.
  • - 서로 예의를 지키며 존중하는 문화를 만들어가요.
  • - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

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

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

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

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

 

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

답변 1

답변을 작성해보세요.

5

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

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

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

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

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