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
'Database > Database' 카테고리의 다른 글
각종 스토리지를 통해 알아보는 분산 시스템 개념 (0) | 2023.08.19 |
---|---|
데이터 내구성을 보장하는 방법 (0) | 2023.08.19 |
데이터베이스를 고를 때 고려해야 하는 요소 (0) | 2023.05.29 |
파티셔닝 및 클러스터링으로 최적화하기 (0) | 2023.05.29 |
DB 튜닝 없이 프로그램 튜닝을 속도 개선 (0) | 2023.05.29 |