본문 바로가기

성능 최적화

(6)
SQL 인덱스(Index) 최적 활용법: 클러스터형 vs 비클러스터형 [SQL] SQL 인덱스(Index) 최적 활용법: 클러스터형 vs 비클러스터형1. 인덱스(Index)란?인덱스(Index)는 데이터베이스 검색 성능을 최적화하기 위한 구조입니다.책의 목차처럼, 인덱스를 활용하면 전체 테이블을 스캔하는 대신 필요한 데이터 위치를 빠르게 찾을 수 있습니다.2. 인덱스의 종류종류설명클러스터형 인덱스 (Clustered Index)데이터가 실제 정렬된 상태로 저장되며, 테이블당 하나만 생성 가능비클러스터형 인덱스 (Non-Clustered Index)데이터가 원래 순서와 무관하며, 하나의 테이블에 여러 개 생성 가능---3. 클러스터형 인덱스 (Clustered Index)클러스터형 인덱스는 테이블의 실제 데이터가 정렬된 상태로 저장되는 인덱스입니다.한 테이블에는 **하나의 ..
[Java & SQL 면접 질문] SQL 성능 최적화 관련 면접 질문과 답변 정리 [SQL] SQL 성능 최적화 관련 면접 질문과 답변 정리1. SQL 성능 최적화란?SQL 성능 최적화는 데이터베이스의**조회 속도를 높이고, 부하를 줄이는 기술**을 의미합니다.인덱스 활용, 조인 최적화, 실행 계획 분석 등이 핵심 개념으로 다뤄집니다.2. SQL 성능 최적화 면접 질문질문예상 답변1. 인덱스(INDEX)란 무엇이며, 언제 사용해야 하나요?인덱스는 **검색 성능을 향상시키는 데이터 구조**입니다.WHERE 절에서 자주 사용되는 컬럼이나 JOIN 시 매칭되는 컬럼에 적용하면 성능이 개선됩니다.하지만 **INSERT, UPDATE, DELETE 성능이 저하될 수 있으므로적절한 컬럼에만 적용**해야 합니다.2. 인덱스가 효율적이지 않은 경우는?- 데이터가 자주 변경되는 컬럼 (예: 로그 테이..
[SQL 성능 최적화 & 튜닝] SQL VIEW와 MATERIALIZED VIEW 차이 및 활용법 [SQL] SQL VIEW와 MATERIALIZED VIEW 차이 및 활용법1. VIEW란?VIEW(뷰)는 실제 테이블이 아닌,하나 이상의 테이블을 기반으로 한 **가상 테이블(Virtual Table)** 입니다.데이터를 효율적으로 관리하고 복잡한 SQL 쿼리를 간소화하는 데 유용하게 사용됩니다.✔ **VIEW 기본 사용법**-- VIEW 생성CREATE VIEW employee_view AS SELECT emp_id, name, salary FROM employees WHERE salary > 5000;-- VIEW 조회SELECT * FROM employee_view;✅ **특징:** - **물리적인 데이터 저장 공간을 차지하지 않음**- 테이블처럼 사용 가능하지만, **실제 데이터는 원본 테이블에..
[SQL 성능 최적화 & 튜닝] 오라클 INDEX 종류와 활용법 (B-Tree, Bitmap) [SQL] 오라클 INDEX 종류와 활용법 (B-Tree, Bitmap)1. INDEX란?데이터베이스에서 INDEX(인덱스)는 검색 성능을 최적화하기 위해 사용되는 데이터 구조입니다.INDEX를 적절히 사용하면 WHERE 조건, JOIN 연산, ORDER BY 등의 SQL 성능을 크게 향상시킬 수 있습니다.2. INDEX의 기본 개념INDEX는 테이블 내 데이터를 빠르게 조회하기 위한 **색인** 역할을 합니다.✔ 테이블의 특정 컬럼에 대해 정렬된 데이터 구조를 유지✔ 검색 시 전체 테이블 스캔을 방지하고, 필요한 데이터만 빠르게 찾음✔ 하지만 INSERT, UPDATE, DELETE 성능이 저하될 수 있음 (INDEX 재구성 필요)3. 오라클에서 지원하는 주요 INDEX 유형INDEX 유형설명사용 예제..
[Java] Java의 메모리 관리: Stack vs Heap 개념과 차이점 [Java] Java의 메모리 관리: Stack vs Heap 개념과 차이점1. Java의 메모리 구조Java 프로그램이 실행될 때, JVM(Java Virtual Machine)은Stack과 Heap이라는 두 가지 주요 메모리 영역을 사용하여 데이터를 관리합니다.각 메모리 영역은 서로 다른 역할을 수행하며, 효율적인 메모리 사용을 위해 각각의 특성을 이해하는 것이 중요합니다.2. Stack과 Heap의 차이점항목StackHeap저장하는 데이터메서드 호출 시 생성되는 지역 변수(Primitive Type) 및 참조 변수객체 및 배열 (new 키워드로 생성된 데이터)메모리 할당 방식LIFO (Last In First Out) 구조동적 할당 (Garbage Collector가 관리)생명주기메서드 실행이 끝나..
[Java] String, StringBuilder, StringBuffer 차이점과 성능 비교 1. String, StringBuilder, StringBuffer란?Java에서 문자열을 다룰 때, 가장 많이 사용하는 클래스는 String, StringBuilder, StringBuffer입니다.이 세 가지 클래스는 문자열을 처리하는 기능을 제공하지만, 동작 방식과 성능 면에서 차이가 있습니다.✅ 각 클래스의 특징클래스특징멀티쓰레드 지원성능String불변(Immutable) 객체, 값이 변하면 새로운 객체 생성지원 안함속도가 느림 (새로운 객체 생성 비용 발생)StringBuilder가변(Mutable) 객체, 문자열 변경 가능지원 안함빠름 (객체 재사용 가능)StringBuffer가변(Mutable) 객체, Thread-Safe (동기화 지원)지원함StringBuilder보다 느림 (동기화 비용..