320x100
320x100

1. 적절한 데이터 타입을 선택해라

: 컬럼에 들어가는 데이터를 고려하여 실제 들어가는 데이터에 비해 지나치게 크기가 큰 데이터 타입을 부여하는 등의 실수를 방지하자

 

 

2. 데이터 정규화

: 데이터 중복성을 줄이고 무결성을 확보

 

 

3. null 값들은 피하자

: 되도록 NOT NULL을 사용하고 기본값을 부여하라

: 꼭 nullable 해야하는 데이터라면 부득이하게 NULL을 사용

 

 

4. 데이터를 인덱싱하라

: 자주 검색되는 컬럼에 인덱스를 만들어 쿼리 성능을 향상

: 검색보다 업데이트가 자주 일어나는 컬럼에 대해서는 인덱스를 걸지말자

 

 

5. 제약 조건을 걸어라

: UNIQUE, FOREIGN KEY와 같은 제약 조건을 걸어 데이터 정합성을 맞추자

 

 

6. 예약어를 사용하지 마라

: SELECT 혹은 FROm과 같은 키워드를 컬럼명으로 사용하지 마라

 

 

7. 좋은 이름을 지어라

: 테이블,  컬럼, 인덱스에 대해 목적을 명확하게 알 수 있는 유의미한 이름을 지어라

 

 

8. 적절한 기본 키를 사용하라

: 숫자나 uuid로 이루어진 중복이 없는 Primary key를 사용

: 숫자일 경우 auto_increment 속성을 부여하면 기본키가 중복되는 일을 방지할 수 있다

 

 

9. 보안을 생각하라

: 민감한 데이터에 대해 암호화하여 저장하라

 

 

10. 설계를 테스트하라

: DDL을 작성하고나서 실제로 테이블을 만들어보고 DML을 통해 의도한대로 작동하는지를 확인하라

 

 

11. 성능을 최적화하라

: 프로파일링 및 벤치마킹을 통해 테이블에 대한 쿼리 성능을 측정하자

: EXPLAIN / SHOW PROFILE / MyTop / innotop / musqlslap / MyBench / Slow Query Log 등의 도구 사용

 

 

12. 표준 형식으로 날짜 및 시간을 저장하라

: DBMS에서 지원하는 날짜 및 시간 관련 데이터 타입을 활용하라

 

 

13. 백업 및 복구 정책을 사용하라

: 주기적으로 테이블의 내용을 백업하는 정책을 적용

: 이 내용은 DBMS마다 다를 것 같은데, 잘모르겠다

 

 

 

 

Reference

 

조서희 / 테이블 설계를 위한 15가지 팁 | 커리어리

좋은 테이블을 설계하는 것은 성공적인 소프트웨어 개발에 매우 중요합니다. 데이터 타입과 인덱싱 전략을 포함한...

careerly.co.kr

 

MySQL을 사용하면서 하지 말아야 할 17가지

1. 작게 생각하기 : 규모가 커질 것을 고려하여 설계 해야함 : 확장이 가능하도록 아키텍처를 잘 쪼개야하며, 복제와 파티셔닝에 대해 미리 계획을 세울 것 2. EXPLAIN 안써보기 : 쿼리 실행 전 반드

2mukee.tistory.com

 

300x250
728x90