📝테이블 설계 진행방향
- 먼저 화면 설계나 어떤 데이터가 쓰이는지 필드 항목을 한글로 다 정리한다.
- 테이블 설계를 하고 난 이후에 빠진 것이 있는지 기획서를 다시 보면서 해당 필드들로 조인을 걸어서 표현이 가능한지 생각해본다.
- 데이터 중복을 없애는 정규화를 맞추는 게 좋다.
📝테이블 설계 고려사항
- 조회의 경우 인덱스 및 테이블 부하의 경우 파티셔닝 등 일어날 수 있는 일에 대해 미리 예상하고 준비해야한다.
- 각 테이블에서 동일 필드가 있을 때는 정합성을 고려한다. (데이터 중복이 없는 게 가장 좋다)
- 예를 들면 테이블 A와 B가 정규화 되어있고 A에서 B를 조인 걸면 가져올 수 있지만 성능상 이슈가 있다고 했을 때 조인을 걸지 않고 A와 B에 동일한 컬럼에 동일한 내용이 들어갈 때 A 테이블만 업데이트하는 경우 B 테이블의 정합성이 안 맞을 수 있다.
| [Database] DB 격리 수준 (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE (직렬화)), DB 동시성 문제 : 더티리드 (Dirt Read), Non-Repeatable Read, 팬텀 리드(Phantom Read), Lost Update, 비관적 락 vs 낙관적 락 (MVCC), DBMS 격리 수준 및 MVCC (7) |
2025.08.05 |
| [Database] 인덱스 vs 클러스터링 인덱스, 힙 테이블, Auto Increment vs Sequence(시퀀스), 단일 인덱스, 복합 인덱스, 카디널리티, ISAM, B-Tree(B 트리), B+Tree, 이진트리 (0) |
2025.07.31 |
| [Database] 여러 테이블을 조인(JOIN)할 때 주의할 점 (0) |
2024.05.16 |
| [Database] 테이블 스캔 종류 (FULL TABLE SCAN, ROWID SCAN, INDEX SCAN, INDEX UNIQUE SCAN, INDEX RANGE SCAN, INDEX RANGE SCAN DESCENDING, INDEX SKIP SCAN, INDEX FULL SCAN, INDEX FAST FULL SCAN) (0) |
2023.06.22 |
| [Database] SQL 튜닝, 옵티마이저(Optimizer), SQL 실행 순서, 옵티마이저 종류(규칙기반, 비용기반), 동작 방식, 옵티마이저 모드, 옵티마이저의 한계 (0) |
2023.06.20 |