'DataBase' 카테고리의 글 목록
THE 1995 DevOps Note
DataBase/RDBMS
옵티마이저
2025.10.21
옵티마이저(Optimizer)는 데이터베이스가 SQL을 가장 빠르고 효율적으로 실행하기 위해 실행 계획(EXPLAIN PLAN)을 자동으로 만들어주는 엔진이야. SQL을 그대로 실행하지 않고, 어떻게 하면 최소 비용으로 결과를 낼 수 있을지 판단해서 최적의 방법을 선택하는 두뇌 같은 역할 ✅ 옵티마이저가 하는 일옵티마이저는 SQL을 받으면 다음을 판단한다1) 어떤 인덱스를 사용할까?예:WHERE name = '홍길동' → name 인덱스 사용WHERE age > 30 → range scan혹은 인덱스 안 쓰고 full scan이 빠를 수도 있음2) 어떤 조인 방식을 사용할까?대표적인 조인 알고리즘:NL Join(Nested Loop Join)Hash JoinMerge Join데이터량, 정렬 여부, 인덱스..
DataBase
JPA 와 Mapper 파일 이 같이 쓰는 프로젝트
2025.10.01
보통 JPA를 쓰면 Entity 와 Repository 만으로도 DB CRUD 를 할 수 있는데, 현업에서는 JPA + Mapper(MyBatis 같은 매퍼) 를 같이 쓰는 경우 종종 있다!! 왜그런지 이유는??🔹 JPA만으로 부족한 부분복잡한 SQL 제어 어려움JPA는 객체 중심이라 동적 SQL, 복잡한 조인, 집계 쿼리 작성이 불편JPQL/Criteria API로 가능하긴 하지만, 가독성이 떨어지고 SQL 최적화 제어가 어려움DB 특화 기능 한계오라클의 힌트, Tibero/Postgres의 특정 함수, Window 함수 등은 JPA 표준으로 다루기 어렵습니다.NativeQuery로 가능하지만, 유지보수가 불편대용량 배치 처리JPA는 1차 캐시/영속성 컨텍스트를 사용하기 때문에 대량 데이터 처리 시..
DataBase
DB 파티션이란?
2025.09.12
DB에서 파티션(Partition) 이란??하나의 큰 테이블이나 인덱스를 여러 개의 작은 논리적 단위로 나누어 저장하는 방식 사용 이유???데이터가 너무 많아지면 검색이나 관리가 느려짐파티션을 적용하면 데이터를 나누어 저장하기 때문에 필요한 부분만 조회할 수 있어 성능이 향상또한 오래된 데이터와 최근 데이터를 분리해 관리하거나, 특정 파티션만 백업·삭제하는 등 유지보수가 용이파티션의 종류범위 파티션 (Range Partitioning): 날짜나 숫자 범위로 나눔리스트 파티션 (List Partitioning): 특정 값 집합으로 나눔 (예: 지역별)해시 파티션 (Hash Partitioning): 해시 함수를 이용해 고르게 분산복합 파티션 (Composite Partitioning): 위 방식을 조합
DataBase
정규화 / 반정규화 란??
2025.06.04
정규화(Normalization)와 반정규화(Denormalization)는 관계형 데이터베이스 설계에서 데이터 구조의 효율성과 성능을 조절하는 두 가지 접근 방식 ✅ 정규화 (Normalization)목적:데이터 중복 제거,데이터 무결성 유지,데이터 구조의 논리적 정합성 확보 장점:데이터 무결성 향상변경 시 일관성 유지저장 공간 최적화단점:조인이 많아져 성능 저하 가능실시간 처리에 불리할 수 있음 ✅ 반정규화 (Denormalization)목적:조회 성능 향상복잡한 조인 최소화방법:테이블 병합중복 데이터 허용집계 필드 추가컬럼을 별도로 분리하거나, 계산 결과 컬럼 저장장점:조회 성능 향상, 특히 대용량/실시간 시스템에서 유리조인 감소로 인한 단순한 쿼리 작성 가능단점:데이터 중복 증가 → 무결성 문제 ..