DB
-
DBMS 아키텍처 개요위 : 데이터베이스 사용자와의 인터페이스중간 : SQL 구문에 다양한 처리를 수행(DBMS)아래 : 저장 장치에 있는 데이터를 접근해서 데이터를 읽고 쓴다 DBMS 내부 기능 간단히 살펴보기쿼리 평가 엔진사용자로부터 입력받은 SQL 구문을 분석, 어떤 순서로 기억장치에 데이터에 접근할지를 결정계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈버퍼 매니저DBMS는 버퍼라는 특별한 용도로 사용하는 메모리 영역을 확보해 둔다.이 메모리 영역을 관리하는 것이 바로 버퍼 매니저 디스크 용량 매니저어디에 어떻게 데이터를 저장할지를 관리, 데이터의 읽고 쓰기를 제어 트랜잭션 & 락 매니저트랜잭션의 정합성을 유지하면서 실행시키고, 필요한 경우 데이터에 락을 걸어 다른 사람의 요청을 대기시..
[SQL레벨업] 1장 DBMS 아키텍처DBMS 아키텍처 개요위 : 데이터베이스 사용자와의 인터페이스중간 : SQL 구문에 다양한 처리를 수행(DBMS)아래 : 저장 장치에 있는 데이터를 접근해서 데이터를 읽고 쓴다 DBMS 내부 기능 간단히 살펴보기쿼리 평가 엔진사용자로부터 입력받은 SQL 구문을 분석, 어떤 순서로 기억장치에 데이터에 접근할지를 결정계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈버퍼 매니저DBMS는 버퍼라는 특별한 용도로 사용하는 메모리 영역을 확보해 둔다.이 메모리 영역을 관리하는 것이 바로 버퍼 매니저 디스크 용량 매니저어디에 어떻게 데이터를 저장할지를 관리, 데이터의 읽고 쓰기를 제어 트랜잭션 & 락 매니저트랜잭션의 정합성을 유지하면서 실행시키고, 필요한 경우 데이터에 락을 걸어 다른 사람의 요청을 대기시..
2025.05.13 -
10장은 1,2,3의 하위 내용이 존재하는데실행계획(1)에서는 1,2에 해당하는 통계 정보, 실행 계획 확인을 살펴 보았고이번에는 3에 해당하는 실행 계획 분석을 살펴보자. 실행 계획 분석실행 계획의 출력 내용을 통해서어떤 접근 방법을 사용해서어떤 최적화를 수행하는지 그리고어떤 인덱스를 사용하는지 등을 이해해야한다.실행 계획 결과의각 라인(레코드)은 쿼리 문장에서 사용된 테이블의 개수만큼 출력 실행 순서는 위에서 아래로 순서대로 표시된다. 이제 실행 계획에 표시되는 각 칼럼의 의미와 값은 어떤것이 있는지 살펴보자. id 칼럼단위 select 쿼리별로 부여되는 식별자 값 하나의 select 문장 안에서 여러 개의 테이블을 조인하면 조인되는 테이블의 개수만큼 레코드가 출력되지만 id 값은 같다select_t..
[MySQL] 10장 실행계획(2)10장은 1,2,3의 하위 내용이 존재하는데실행계획(1)에서는 1,2에 해당하는 통계 정보, 실행 계획 확인을 살펴 보았고이번에는 3에 해당하는 실행 계획 분석을 살펴보자. 실행 계획 분석실행 계획의 출력 내용을 통해서어떤 접근 방법을 사용해서어떤 최적화를 수행하는지 그리고어떤 인덱스를 사용하는지 등을 이해해야한다.실행 계획 결과의각 라인(레코드)은 쿼리 문장에서 사용된 테이블의 개수만큼 출력 실행 순서는 위에서 아래로 순서대로 표시된다. 이제 실행 계획에 표시되는 각 칼럼의 의미와 값은 어떤것이 있는지 살펴보자. id 칼럼단위 select 쿼리별로 부여되는 식별자 값 하나의 select 문장 안에서 여러 개의 테이블을 조인하면 조인되는 테이블의 개수만큼 레코드가 출력되지만 id 값은 같다select_t..
2025.05.09 -
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