[Database] ERD 식별 - 비식별 관계
·
Computer Science/Database
궁금했던 점상황 주문 로직을 위해 "주문 테이블(Order)"과 "상품 테이블(Product)"를 구성했다.어떤 주문에 어떤 상품이 담기는지를 구성하다보니 N:M구조가 되어,중간 테이블 "주문 매핑 상품 테이블(Order_mapping)"을 중간에 두었다.Order와 Order_mapping은 식별관계이고,Product과 Order_mapping 또한 식별관계이다. 식별관계인 테이블이 있다고 가정한 상황에서Order_mapping의 PK가 복합키로 존재한다면 DB관리에 불편함이 있었다.단일 PK로 레코드를 고유 식별가능하도록 PK를 추가한다면 여전히 식별관계인가?NO => 비식별 관계이다.구분 기준두 테이블간의 관계가 자식 테이블의 기본 키(PK)에 영향을 미치는지에 따라 구분 이 글에서부모 테이블의 기..
[Database] N+1 문제
·
Computer Science/Database
N+1 문제 ?데이터베이스 쿼리 최적화와 관련된 성능문제주로 ORM(Object-Relational Mapping) 도구(JPA, Hibernate 등)를 사용할 때 발생되며,한 번의 데이터 조회로 충분한 정보를 가져올 수 있음에도 N개의 추가적인 쿼리가 실행되는 비효율적인 상황1번의 메인 쿼리 + N번의 추가 쿼리 = 총 N + 1번의 쿼리성능 저하데이터가 많을수록 데이터베이스에 과도한 부하 발생특히 대량의 데이터를 조회할 때 성능 문제가 크개 발생네트워크 지연데이터베이스와 애플리케이션 간 통신량이 증가하여 요청 처리 시간이 늘어남N+1 문제의 동작 원리쿼리 실행 과정먼저 1개의 메인 쿼리로 데이터 리스트를 가져옵니다.가져온 데이터 각각에 대해 추가로 1개의 쿼리가 실행되어,결과적으로 N개의 추가 쿼리..