본문 바로가기

인덱스3

MyBatis 로 대규모 데이터 처리 수백만 건 이상의 대규모 데이터를 다룰 때 성능 저하를 방지하고 효율성을 극대화 할 수 있는 방법들을 알아보자. 1. 대규모 데이터 처리시 주요 문제메모리 초과: 한번에 너무 많은 데이터를 조회하거나 처리하면 메모리가 부족해 질 수 있다.쿼리 실행 속도: 비효율적인 쿼리는 데이터가 많을 수록 성능에 큰 영향을 준다.트랜잭션 관리: 많은 데이터가 포함된 작업은 트랜잭션 범위 내에서 실패 시 롤백에 부하를 줄 수 있다. 2. 효율적인 데이터 조회페이징 처리 : 한 번에 모든 데이터를 가져오는 대신, 페이지 단위로 나누어 처리한다. SELECT * FROM users LIMIT #{pageSize} OFFSET #{offset} ResultHandler 를 이용한 스트리밍 처리MyBatis 는 Resul.. 2024. 11. 18.
MySQL 인덱스의 카디널리티 Index Cardinality 카디널리티(Cardinality)는 인덱스에서 고유한 값의 수를 의미한다. 인덱스가 적용된 열에 얼마나 많은 고유 값이 존재하는 지를 나타낸다. 카디널리티는 데이터베이스 인덱스가 얼마나 효율적으로 작동할지를 결정하는 중요한 요소이다.카디널리티가 높다: 열에 고유한 값이 많다. 카디널리티가 낮다: 열에 고유한 값이 적다.카디널리티와 인덱스 성능카디널리티는 인덱스의 선택성과 밀접한 관계가 있다. 선택성(selectivity)은 인덱스를 통해 얼마나 효율적으로 원하는 데이터를 조회할 수 있는지를 나타낸다. 카디널리티가 높은 열에 인덱스를 적용하면, 쿼리가 더 적은 행을 읽어도 원하는 결과를 얻을 수 있어 성능이 향상된다.높은 카디널리티: 조회할 때 특정 값을 더 쉽게 찾을 수있어서, 인덱스의 선택성이 높아 쿼.. 2024. 10. 18.
클러스터드 인덱스 (Clustered Index) VS 논 클러스터드 인덱스(Non-Clustered Index) 데이터베이스에서 인덱스(Index) 는 데이터를 빠르게 검색하기 위해 사용하는 구조이다. 인덱스는 책의 목차와 유사한 역할을 하며, 테이블의 열에 대해 인덱스를 생성하여 데이터 조회 성능을 향상시킨다. 인덱스는 크게 클러스터드 인덱스(Clustered Index) 와 논클러스터드 인덱스(Non-clustered Index)로 나뉜다.1. 클러스터드 인덱스(Clustered Index)클러스터드 인덱스는 데이터 자체의 물리적 순서를 정렬하는 인덱스입니다. 즉, 테이블 내의 데이터가 클러스터드 인덱스의 키 값에 따라 정렬되며, 테이블의 실제 데이터가 클러스터드 인덱스와 함께 저장됩니다.특징:테이블 당 하나의 클러스터드 인덱스만 존재: 데이터가 물리적으로 정렬되기 때문에 하나의 테이블에는 하나의 클러스터드 인.. 2024. 9. 11.
728x90
반응형
LIST