티스토리 뷰
DB저장의 효율과 용량 퍼포먼스를 위해 알맞은 데이터타입의 지정과 사용의 필요성이 있다.
대략 아래를 참고하여 테이블 생성 시 속도를 향상시켜 보자.
예)
열 이름 |
설명 |
예 |
적합한 데이터 타입 |
가격 (price) |
물건 판매가 |
5678.39 |
DECIMAL(6, 2) |
우편번호 (zip_code) |
5~10개의 문자 |
4836-3854 |
VARCHAR(10) |
원자량 (atomic_weight) |
원소의 원자량 (소수점 6자리) |
4.123456 |
DECIMAL(10, 6) |
설명,가사 (Description, Lyrics) |
용량이 큰 텍스트 255이상의 문자열 |
(1절) 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 (2절) 남산위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세... |
TEXT |
갯수 (quantity) |
남아있는 물건 갯수 |
239 |
INT |
세율 (tax_rate) |
퍼센트 % |
3.755 |
DECIMAL(5, 3) |
책 제목 (book_title) |
문자열 |
Head First SQL |
VARCHAR(50) |
성별 (gender) |
M혹은 F의 단 하나의 문자 |
M |
CHAR(1) |
핸드폰 번호 (phone_number) |
11자리 혹은 10자리 문자 |
01012341234 |
VARCHAR(11) |
state |
지역(주)를 나타내는 두개의 고정 문자 |
TX, CA |
CHAR(2) |
기념일 (anniversary) |
년,월,일 |
2000-12-24 |
DATE |
이긴경기 (game_won) |
이긴 경기 수를 나타냄 |
15 |
INT |
미팅시간 (meeting_time) |
날짜와 시간 |
2015-03-19 15:03:03 |
TIMESTAMP |
원래 출처(URL : http://warmz.tistory.com/232 )에서 가져온 내용을 우리나라에 맞게 조금 변형하였다.
먼저 핸드폰 번호의 경우 아직도 10자리 ~ 11자리가 대다수 있기 때문에 VARCHAR(11)인 가변형으로 변형하여 사용.
두번째는 기념일의 경우도 우리나라 날짜 표기법에 맞추어 '년-월-일' 로 표기.
(이건 데이터 타입이라기 보다 insert 할때 주어지는 형식이지만..)
끝으로 날짜와 시간이 같이 포함되어있는 경우 '년-월-일 시간-분-초"의 형태로 저장하고 데이터는 TIMESTAMP를 권장한다.
TIMESTAMP는 4Byte이며 DATETIME 8byte 보다 작다. 단지 유의할 것은 '1970-01-01 00:00:00'부터 2037년까지
나타낼 수 있다는 정도?
가만 보면 소수점이 존재하는 모든 실수형 데이터에 명확하게 DECIMAL로 그 범위를 지정해 주고 FLOAT나 DOUBLE 같은
부동 소수점을 가진 데이터 타입은 최대한 쓰지않은 점이 포인트인 것 같다.
가령 DECIMAL(6, 5) 인 경우 앞자리 수는 최대6자리, 뒷자리 소수점은 최대 5자리 까지 표현되도록 함을 의미한다.
가령 DECIMAL(6, 5) 인 경우 전체 숫자는 6자리, 뒷자리 소수점은 최대 5자리 까지 표현되도록 함을 의미한다.
( MySQL 버전 5.1.41-community 기준 직접 테스트 결과 DECIMAL데이터의 경우 앞자리 숫자의 의미는 전체 숫자의 길이(length)를
표현하는 것으로 본인이 확인함.)
성별같은 경우 M/F로 구분하는데 문자일경우 CHAR(1)로 깔끔하게 사용하는것과 마찬가지로
본인이 주로 데이터 타입판별에 0/1 로 구분하였는데 이런경우 TINYINT(1byte)로 쓰도록 한다.
'■ Database ■ > MySQL' 카테고리의 다른 글
Toad for Mysql 에서 다이어그램 만들고 이미지로 내보내기 Create Diagram and Export image (0) | 2016.06.03 |
---|---|
Toad for MySQL 에서 코멘트입력과 스키마 내보내기 (0) | 2016.05.19 |
mysql DELETE문 (0) | 2013.10.16 |
mysql에서 UPDATE문 (0) | 2013.10.16 |
데이터타입2 (0) | 2013.10.16 |