블로그 글

박재성 선생님이 개발 블로그에 쓴 글입니다.

[실습] 부서별 최대 연봉을 가진 사용자들 조회하는 SQL문 튜닝하기
MySQL

[실습] 부서별 최대 연봉을 가진 사용자들 조회하는 SQL문 튜닝하기

✅ 부서별 최대 연봉을 가진 사용자들 조회하기 테이블 생성 100만 건의 랜덤 데이터 삽입 기존 SQL문 성능 체크하기 실행 계획 조회해보기 성능 개선해보기

MySQL

[실습] 인덱스를 걸었는데도 인덱스가 작동하지 않는 경우 - 2

✅ 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 인덱스 생성 실행 계획 조회해보기 인덱스 컬럼을 가공해서 사용하지 않게 SQL문 수정하기 [이것만은 꼭 기억해두자!] - 인덱스 컬럼을 가공(함수 적용, 산술 연산, 문자역 조작 등)하면, MySQ

[실습] 인덱스를 걸었는데도 인덱스가 작동하지 않는 경우 - 1
MySQL

[실습] 인덱스를 걸었는데도 인덱스가 작동하지 않는 경우 - 1

✅ 인덱스가 작동하지 않는 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 인덱스 생성하기 실행 계획 조회해보기 [이것만은 꼭 기억해두자!] 넓은 범위의 데이터를 조회하는 경우, 인덱스를 사용해서 조회하는 것보다 풀 테이블 스캔이 효과적이라고 판단한

커버링 인덱스(Covering Index)란?
MySQL

커버링 인덱스(Covering Index)란?

✅ 커버링 인덱스(Covering Index)란? SQL문을 실행시킬 때 필요한 모든 컬럼을 갖고 있는 인덱스를 커버링 인덱스(Covering Index)라고 한다. ✅ 예시 위와 같은 users 테이블이 있고, name 인덱스가 있다고 가정하자. 그

[실습] 인덱스를 무식하게 많이 걸면 어떻게 될까?
MySQL

[실습] 인덱스를 무식하게 많이 걸면 어떻게 될까?

인덱스를 사용하면 데이터를 조회할 때의 성능이 향상된다. 그러면 인덱스를 무조건적으로 많이 추가하는 게 좋다고 착각할 수도 있다. 하지만 인덱스를 추가하면 조회 성능은 올라가지만, 쓰기 작업(삽입, 수정, 삭제)의 성능은 저하된다. 왜 그런 지 직관적

인덱스(Index)란?
MySQL

인덱스(Index)란?

✅ 인덱스(Index)란? 인덱스의 정의를 찾아보면 아래와 같다. 인덱스(Index)는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조를 뜻한다. 위의 정의보다는 아래의 의미로 인덱스를 기억하자. 그래야 훨씬 직관적으로 이해하기가 쉽

제약 조건을 추가하면 자동으로 생성되는 인덱스 (UNIQUE)
MySQL

제약 조건을 추가하면 자동으로 생성되는 인덱스 (UNIQUE)

✅ UNIQUE 제약 조건을 추가하면 자동으로 인덱스가 생성된다. MySQL은 UNIQUE 제약 조건을 추가하면 자동으로 인덱스가 생성된다. 확인해보자. 테이블 생성 인덱스 확인하기 이런 특징 때문에 UNIQUE 특징으로 인해 생성되는 인덱스를 보고

성능 개선을 위한 MySQL 구조 파악 / SQL 튜닝의 핵심
MySQL

성능 개선을 위한 MySQL 구조 파악 / SQL 튜닝의 핵심

MySQL 구조는 왜 갑자기 파악하나요? → 어떤 부분에서 MySQL의 성능을 많이 잡아 먹는지, 어떤 요인이 주로 문제를 일으키는 지 파악할 수 있어야 한다. 그 원인을 파악하기 위해서는 MySQL 구조를 알아야만 한다. ✅ MySQL의 아키텍처 M

MySQL

신입 백엔드 면접에서 자주 물어보는 ‘DB 성능 최적화’ 경험?!

✅ 신입 백엔드 개발자 면접에 종종 등장하는 ‘DB 성능 최적화 경험’ MySQL과 같은 DB를 개인 프로젝트나 토이 프로젝트에서 사용할 때는 DB 성능이 느려지는 경우가 거의 없다. 하지만 실제 현업에서 DB를 사용하다보면 성능이 느려지는 경우를 꼭

MySQL

DB 성능 개선할 때 ‘SQL 튜닝’을 가장 먼저 해야 하는 이유 (vs 스케일업, 레플리케이션, 샤딩, 캐싱)

✅ DB 성능을 개선하는 방법 DB에 부하가 걸렸을 때 성능을 개선하는 방법은 다양하다. (아래 용어가 뭔지 몰라도 상관없다. ‘여러가지 방식으로 DB 성능을 개선할 수 있구나’ 정도로 알고 넘어가자.) SQL 튜닝 캐싱 서버 활용 (Redis 등)

Vercel에서 환경변수 설정하기
Vercel

Vercel에서 환경변수 설정하기

1. 환경변수를 설정하고자 하는 프로젝트에 들어가기 2. 환경변수 설정 페이지에 들어가기 3. 환경변수 설정하기 4. 환경변수 잘 추가됐는 지 확인하기 환경변수 설정하는 페이지의 하단 부분에서 등록된 환경변수를 확인할 수 있다.

[실습] AWS EC2에 Docker + Spring Boot 배포하기
Docker

[실습] AWS EC2에 Docker + Spring Boot 배포하기

AWS EC2에 Spring Boot 프로젝트만 배포를 해야하는 상황이라고 가정하자. ✅ Docker CLI로 배포하기 로컬 환경에서 프로젝트 셋팅 간단한 코드 작성 Dockerfile 작성하기 Spring Boot 프로젝트 빌드하기 AWS EC2에서

박재성 선생님 블로그 글 (43쪽) | JSCODE