테이블 변경 (ALTER) - 테이블 변경 (CHANGE, MODIFY)
- MODIFY
- 컬럼의 상태 변경
- 컬럼의 값을 바꿀 때 사용
ALTER TABLE hero
MODIFY COLUMN star BIGINT DEFAULT 10000;
DESC hero;
- CHANGE
- 컬럼의 상태 변경
- MODIFY와 달리 컬럼의 이름도 변경 가능하다.
ALTER TABLE hero
CHANGE COLUMN star rating INT DEFAULT 100;
DESC hero;
- INT
- INT의 범위
- INT의 범위는 4바이트이므로 -2147483648 ~ 2147483647의 범위를 갖지만, 대부분의 경우 id에 음수를 사용하지 않기 때문에 UNSIGNED 속성을 지정하면, 0 ~ 4294967295의 범위를 갖는다.
- 테이블에 42억 개의 데이터가 들어갈 일이 절대 없다면 BIGINT를 쓸 필요가 없고, 심지어는 경우에 따라서 그보다 더 작은 타입들(MEDIUMINT, SMALLINT, TINYINT)을 고려할 필요가 있다.
- INT 형 타입들의 범위
- INT의 범위
- INT vs BIGINT
- BIGINT를 사용 할 때의 영향
- 디스크에서 페이지를 더 많이 사용한다.
- 데이터가 램에 있지 않을 때 데이터 읽기 속도에 영향을 줄 수 있다.
- 유지관리 작업이 더 오래 걸린다(백업, 인덱스 재구축, CHECKDB)
- 늘어난 데이터 페이지만큼 램에 더 많은 공간을 차지한다.
- 디스크에서 더 자주 읽는 비용이 발생한다.
- 디스크에서 페이지를 더 많이 사용한다.
- 테이블에 따라 가장 작은 데이터 타입을 사용해야한다.
- INT타입으로 충분할 것을 BIGINT로 쓴다해서 검색 속도에 엄청난 영향이 있을 것 같지는 않지만, 굳이 성능을 악화시킬 필요는 없다.
- BIGINT를 사용 할 때의 영향
'개발 > Database' 카테고리의 다른 글
데이터 변경 (UPDATE) (0) | 2024.02.02 |
---|---|
테이블 변경 (ALTER) - 테이블 제약 조건 제거 (DROP) (0) | 2024.02.02 |
테이블 변경 (ALTER) - 테이블 칼럼 , 제약조건 추가 (ADD) (0) | 2024.02.02 |
테이블 변경 (ALTER) - 테이블 이름 변경 (RENAME) (0) | 2024.02.02 |
데이터 베이스, 테이블 삭제 (0) | 2024.02.02 |