분류 전체보기

▶ B-TREE 인덱스란?▷ 개념B-TREE(균형 트리)는 검색, 삽입, 삭제 연산이 로그(log n)시간에 수행되도록 설계된 트리 구조.MySQL에서 가장 일반적으로 사용되는 인덱스 구조이다.   ▷ 특징정렬된 데이터를 빠르게 검색할 수 있음범위 검색(=, >, BUT, 앞에 와일드카드가 있는 경우(LIKE ‘%abc’) 사용 불가보통 PRIMARY KEY나 UNIQUE KEY에 자동으로 생성됨비교 연산을 활용한 쿼리 성능이 향상됨   ▷ 언제 사용하면 좋을까?숫자 데이터나 범위 검색을 자주 해야 하는 경우WHERE 절에 특정 컬럼을 자주 사용하는 경우       ▶ FULLTEXT 인덱스란?▷ 개념FULLTEXT 인덱스는 긴 텍스트 데이터에서 특정 단어(키워드)를 검색하는 데 최적화된 인덱스.MySQ..
▶ 명령어 정리인덱스 생성단일CREATE INDEX [인덱스명] ON [테이블명] (컬럼명); 복합CREATE INDEX [인덱스명] ON [테이블명] (컬럼명, 컬럼명...);  테이블의 인덱스 확인SHOW INDEX FROM [테이블명];  인덱스 삭제DROP INDEX FROM [테이블명];        ▶ 인덱스를 이용한 읽기의 손익 분기점 판단일반적인 DBMS의 옵티마이저에서는 인덱스를 통해 레코드 1건을 읽는 것이테이블에서 직접 레코드 1건을 읽는 것보다 4~5배 정도 비용이 더 많이 드는 작업인 것으로 예측한다. 즉, 인덱스를 통해 읽어야 할 레코드의 건수가(옵티마이저가 판단한 예상 건수)전체 테이블 레코드의 20~25%를 넘어서면 인덱스 사용 X-> 이 경우 테이블 풀 스캔해서 필요한 레코..
▶ 인덱스란?데이터베이스에서 데이터를 더 빠르게 찾기 위해서 사용하는 자료구조이다.책의 목차라고 생각하면 된다.인덱스가 없으면 전체 테이블을 조회하는 풀스캔을 한다. -> 비효율적     ▶ 인덱스의 핵심 원리1️⃣ 인덱스를 생성하면, 특정 컬럼을 기반으로 정렬된 별도의 자료구조(B-Tree 등)가 만들어짐2️⃣ 쿼리를 실행할 때, MySQL은 테이블 전체를 검색하는 대신 인덱스를 먼저 검색3️⃣ 인덱스에서 원하는 데이터를 찾고, 해당 데이터를 빠르게 조회   ▷ 장점테이블을 검색하는 속도와 성능 향상 → 시스템 전반적인 부하 감소데이터들이 정렬된 형태를 가짐 → 조건에 맞는 데이터를 빠르게 찾는다  ▷ 단점인덱스를 저장하기 위한 추가 저장 공간 필요인덱스를 관리하기 위한 추가 작업 필요(원본 테이블에 ..
▶ 들어가기 전최고의...선배랑 밥을 먹은적이 있었는데, 그때 선배가 많은 것을 전수해주셨다... 그 중에서 Real MySQL 8.0 이라는 책을 추천받았다.성능 최적화에 있어서 DB 부분이 가장 직관적이기 때문에 평소에 공부해야지...생각은 하고 있었는데 선배랑 얘기하다보니까 공부 자극도 받고... 아 나도 진짜 형처럼....열심히 해야겠다... 라는 생각도 들었다. JPA를 사용하기는 하지만 Hibernate가 짜준 쿼리를 최적화 해야 할 수도 있으니 공부해보려고 한다.   ▷ 이 실습에서 배울 것✅ EXPLAIN을 활용해 쿼리의 실행 계획을 분석하는 방법✅ MySQL이 데이터를 어떻게 읽고 처리하는지 이해하기        ▶ 실습 환경 세팅(샘플 데이터베이스 준비)기본적으로 MySQL은 깔려있다는..
▶︎ CQRS란?CQRS는Command and Query Responsibility Segregation 의 약자로Command와 Query의 책임을 분리하는 디자인 패턴이다. Command : 데이터베이스를 변경하는 모든 작업. → Create, Update, Delete Query : 데이터베이스에서 데이터를 조회하는 모든 작업. → Read → 상태 변경 X ▷ 서비스를 분리하는 이유위 CQRS 디자인패턴을 바탕으로 서비스를 분리하면각각의 서비스가 하나의 책임만을 가지게 되어코드의 유지보수성 향상, 성능 최적화, 확장성 측면에서 이점이 있다.어떻게 성능 최적화를 할까?위 말 그대로 QueryService와 CommandService를 분리함으로써 성능 최적화를 불러올 수 있다. ..
[WARNING] Internal Server Error : Handler dispatch failed: java.lang.NoSuchMethodError: 'void org.springframework.web.method.ControllerAdviceBean.(java.lang.Object)' 프로젝트를 하는데 Swagger가 안들어가지고 이런 오류가 뜨길래엥...? 뭐지?? 싶었다. ControllerAdvice에서 에러가 뜬거 같기는 해서 @RestControllerAdvice를 주석처리 해보니까 정상적으로 들어가졌다.근데 이거를 주석처리하면 예외처리가 안되기 때문에 GPT한테 물어봤다.오호 버전이 일치하지 않아서 생긴 오류인가? 싶어서 기존 2.6.0이었던 스웨거 버전을 2.7.0으로 변경해주었다..
LearningStudy
'분류 전체보기' 카테고리의 글 목록