mysql
-
MySQL 서버의 실행 계획에 가장 큰 영향을 미치는 통계 정보에 대해 살펴보고MySQL 서버가 보여주는 실행 계획을 읽는 순서와 실행 계획에 출력되는 키워드, 그리고 알고리즘에 대해 살펴보자 통계 정보MySQL 5.7 버전까지 테이블과 인덱스에 대한 개괄적인 정보를 가지고 실행 계획을 수립했다.MySQL 8.0 버전부터는 인덱스 되지 않는 칼럼들에 대해서도 데이터 분포도를 수집해서 저장하는 히스토그램 정보가 도입됐다. 테이블 및 인덱스 통계 정보비용 기반 최적화에서 가장 중요한 것은 통계 정보다. MySQL 5.6 버전부터 InnoDB 스토리지 엔진을 사용하는 테이블에 대한 통계 정보를 영구적으로 관리할 수 있게 개선됐다. innodb_index_stats, innodb_table_statsSTATS..
[MySQL] 10장 실행 계획(1)MySQL 서버의 실행 계획에 가장 큰 영향을 미치는 통계 정보에 대해 살펴보고MySQL 서버가 보여주는 실행 계획을 읽는 순서와 실행 계획에 출력되는 키워드, 그리고 알고리즘에 대해 살펴보자 통계 정보MySQL 5.7 버전까지 테이블과 인덱스에 대한 개괄적인 정보를 가지고 실행 계획을 수립했다.MySQL 8.0 버전부터는 인덱스 되지 않는 칼럼들에 대해서도 데이터 분포도를 수집해서 저장하는 히스토그램 정보가 도입됐다. 테이블 및 인덱스 통계 정보비용 기반 최적화에서 가장 중요한 것은 통계 정보다. MySQL 5.6 버전부터 InnoDB 스토리지 엔진을 사용하는 테이블에 대한 통계 정보를 영구적으로 관리할 수 있게 개선됐다. innodb_index_stats, innodb_table_statsSTATS..
2025.05.04 -
realMySQL 책을 읽으면서 디테일하게 내용을 공부하는 점은 좋지만처음 공부하는 내용이 너무 자세하게 깊이 공부하니 전체적인 큰 그림이 머리에 잘 안 들어온다는 생각이 들었다. 대략적인 틀 정도만 잡아놓고 디테일한 정보를 읽으면 이해하는데 도움이 될것이라 생각하여블로그나 유투브에 간략한 내용을 검색하다가 괜찮은 영상이 있어서 그 내용을 나중에도 빠르게 생각날 수 있도록 정리해 보도록 하겠다. https://youtu.be/_UI8YDU_mfg?si=aT4__dwGqVo-zuXy 개요웹 애플리케이션은 대부분 DB의 내용을 조회하는 액션이 등록/수정/삭제 액션보다 더 많다그만큼 조회 속도가 중요하다.조회 속도를 높이기 위해서는 랜덤 I/O, 순차 I/O를 줄여야 한다.이를 줄일 수 있는 방법으로는 캐시..
[MySQL] 인덱스와 스캔 튜닝realMySQL 책을 읽으면서 디테일하게 내용을 공부하는 점은 좋지만처음 공부하는 내용이 너무 자세하게 깊이 공부하니 전체적인 큰 그림이 머리에 잘 안 들어온다는 생각이 들었다. 대략적인 틀 정도만 잡아놓고 디테일한 정보를 읽으면 이해하는데 도움이 될것이라 생각하여블로그나 유투브에 간략한 내용을 검색하다가 괜찮은 영상이 있어서 그 내용을 나중에도 빠르게 생각날 수 있도록 정리해 보도록 하겠다. https://youtu.be/_UI8YDU_mfg?si=aT4__dwGqVo-zuXy 개요웹 애플리케이션은 대부분 DB의 내용을 조회하는 액션이 등록/수정/삭제 액션보다 더 많다그만큼 조회 속도가 중요하다.조회 속도를 높이기 위해서는 랜덤 I/O, 순차 I/O를 줄여야 한다.이를 줄일 수 있는 방법으로는 캐시..
2025.05.01 -
MySQL에서는 explain이라는 명령으로 쿼리의 실행 계획을 확인할 수 있다. MySQL 서버가 사용자의 요청을 처리하기 위해 데이터를 가공하는 기본 절차와 빠른 성능을 보장하기 위해 수행하는 최적화 절차를 살펴보자.(현재는 기본 절차만 스터디하고 정리하였다)개요쿼리 실행 절차sql 문장을 서버가 이해할 수 있는 수준으로 분리(parse tree)parse tree를 확인하며 테이블, 인덱스 정보를 선택2단계에서 결정된 정보를 활용해 스토리지 엔진으로부터 데이터를 가져옴옵티마이저의 종류비용 기반 최적화 -> 대부분의 RDBMS가 사용규칙 기반 최적화 기본 데이터 처리MySQL 서버를 포함한 모든 RDBMS는 데이터를 정렬하거나 그루핑 하는 등의 기본 데이터 가공 기능을 가지고 있다. 기본적인 가공을..
[MySQL] 9장 옵티마이저와 힌트MySQL에서는 explain이라는 명령으로 쿼리의 실행 계획을 확인할 수 있다. MySQL 서버가 사용자의 요청을 처리하기 위해 데이터를 가공하는 기본 절차와 빠른 성능을 보장하기 위해 수행하는 최적화 절차를 살펴보자.(현재는 기본 절차만 스터디하고 정리하였다)개요쿼리 실행 절차sql 문장을 서버가 이해할 수 있는 수준으로 분리(parse tree)parse tree를 확인하며 테이블, 인덱스 정보를 선택2단계에서 결정된 정보를 활용해 스토리지 엔진으로부터 데이터를 가져옴옵티마이저의 종류비용 기반 최적화 -> 대부분의 RDBMS가 사용규칙 기반 최적화 기본 데이터 처리MySQL 서버를 포함한 모든 RDBMS는 데이터를 정렬하거나 그루핑 하는 등의 기본 데이터 가공 기능을 가지고 있다. 기본적인 가공을..
2025.04.27 -
디스크 읽기 방식 -> 랜덤 I/O, 순차 I/O컴퓨터에서 CPU나 메모리 같은 주요 장치는 대부분 전자식 장치지만 하드 디스크 드라이브는 기계식 장치다. 하드 디스크를 대체하기 위해서 SSD(solid state driver)가 출시되었다. SSD는 기존 하드 디스크에서 데이터 저장용 플래터(원판)를 제거하고 그 대신 플래시 메모리를 장착했다. 하드 디스크의 경우 물리적인 원판을 돌려야 하기 때문에 랜덤 I/O에는 느리지만, 순차 I/O의 경우에는 상대적으로 빠르다. 인덱스란?인덱스의 비유색인 -> 정렬된 키 기준으로 빠르게 데이터를 찾아갈 수 있다. 자료구조 -> sortedList(인덱스, 저장되는 값을 항상 정렬된 상태로 유지), arrayList(데이터 파일, 저장되는 순서 그대로 유지) ..
[MySQL] 8장 인덱스디스크 읽기 방식 -> 랜덤 I/O, 순차 I/O컴퓨터에서 CPU나 메모리 같은 주요 장치는 대부분 전자식 장치지만 하드 디스크 드라이브는 기계식 장치다. 하드 디스크를 대체하기 위해서 SSD(solid state driver)가 출시되었다. SSD는 기존 하드 디스크에서 데이터 저장용 플래터(원판)를 제거하고 그 대신 플래시 메모리를 장착했다. 하드 디스크의 경우 물리적인 원판을 돌려야 하기 때문에 랜덤 I/O에는 느리지만, 순차 I/O의 경우에는 상대적으로 빠르다. 인덱스란?인덱스의 비유색인 -> 정렬된 키 기준으로 빠르게 데이터를 찾아갈 수 있다. 자료구조 -> sortedList(인덱스, 저장되는 값을 항상 정렬된 상태로 유지), arrayList(데이터 파일, 저장되는 순서 그대로 유지) ..
2025.04.18