본문 바로가기

DB

[DB] 정규화 정규화 중복을 최소화하게 데이터를 구조화하는 프로세스 중복을 제거, 한 곳에서만 데이터를 관리하게 설계 읽을 때는 항상 원본 데이터를 참조 읽을 때 참조가 발생하기 때문에, 조회의 성능을 포기하고 쓰기의 성능을 올린다. 테이블 설계 관점에서, 조회와 쓰기 사이의 트레이드 오프 비정규화 정규화의 반대 중복을 허용하고 참조 없이 읽기가 가능하다. 쓰기의 성능을 포기하고 읽기의 성능을 올린다. Follow 기능을 구현한다고 가정할 때, Flow Entity를 다음과 같이 만들 수 있다. @Getter public class Follow { final private long id; final private String fromMemberNickname; final private int fromMembeAge; .. 더보기
[DB] MySQL MySQL은 가장 인기가 많은 오픈 소스 관계형 데이터베이스이다. 높은 접근성과 낮은 비용이라는 장점을 가진다. sql 안식 표준을 지키고 있다. MySQL Architecture MySQL Engine 판단과 명령을하는 두뇌 역할 쿼리 파서 -> 전처리기 -> 옵티마이저 -> 쿼리 실행기 등의 구성 요소로 이루어져 있다. 쿼리 파서 SQL을 파싱하여 Syntax Tree를 만든다. 해당 과정에서 문법 오류 검사가 이루어진다. 전처리기 쿼리 파서에서 만든 Tree를 바탕으로 전처리를 시작한다. 테이블이나 컬럼 존재 여부, 점근 권한 등 Semantic 오류를 검사한다. 쿼리 파서, 전처리기는 컴파일 과정과 매우 유사하고 매번 구문 평가를 진행한다. 옵티마이저 쿼리를 처리하기 위한 여러 방법들을 만들고, .. 더보기