# RealMySQL

34개의 포스트

RealMySQL 9.1-9.2.3.1

MySQL에서 쿼리를 최적으로 실행하기 위해 기본 데이터를 비교해 최적의 실행 계획을 수립하는 작업을 옵티마이저가 한다.파싱사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리한다.SQL 파서라는 모듈로 처리한다.SQL 파스 트

6일 전
·
0개의 댓글
·

RealMySQL 8.8 ~ 8.10

프라이머리 키 값에 의해 레코드의 저장 위치가 결정프라이머리 키가 없는 경우 InnoDB 스토리지 엔진이 프라이머리 키를 대체할 칼럼을 선택한다.클러스터 인덱스는 트리로 저장되어, Root페이지와 Leaf페이지로 구성된다. 또한 Root페이지는 Leaf페이지의 주소로

2023년 5월 25일
·
0개의 댓글
·

RealMySQL 8.6-7

일반적인 인덱스는 칼럼 값 일부(칼럼의 값 앞부분) 또는 전체에 대해서만 인덱스 생성이 허용된다.칼럼의 값을 변형해서 만들어진 값에 대해 인덱스를 구축하는 경우도 있는데, 함수 기반의 인덱스를 활용하면 된다.함수 기반 인덱스를 구현하는 방법은 두 가지 이다.MySQL

2023년 5월 11일
·
0개의 댓글
·

RealMySQL 8.4 ~ 8.5

공간 인덱스는 R-Tree 인덱스 알고리즘을 이용해 2차원의 데이터를 인덱싱하고 검색하는 목적의 인덱스다.최근 GPS나 지도 서비스와 같이 위치 기반 서비스를 구현하는 방법 중에 하나로 MySQL의 공간 확장을 이용하면 간단하게 이러한 기능을 구현할 수 있다.MySQL

2023년 4월 12일
·
0개의 댓글
·

RealMySQL - 인덱스

랜덤 I/O 표현은 하드 디스크 드라이브의 플래터(원판)를 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동시킨 다음 데이터를 읽는 것을 의미순차 I/O 또한 작업 과정은 같다.인덱스 레인지 스캔은 데이터를 읽기 위해 주로 랜덤 I/O를 사용, 풀 테이블 스

2023년 3월 22일
·
0개의 댓글
·

RealMySQL - 데이터 압축

하나의 테이블은 동일한 크기의 페이지(블록)로 통일 돼야 한다.페이지 압축 기능은 운영체제별로 특정 버전의 파일 시스템에서만 지원되는 펀치 홀 이라는 기능을 사용한다.페이지 압축 이용하기 위해 테이블 생성하거나 변경할 때 COMPRESSION 옵션을 설정CREATE T

2023년 3월 15일
·
0개의 댓글
·

RealMySQL - 잠금, 격리수준

MySQL에서 제공하는 잠금 가운데 가장 범위가 크다.한 세션에서 글로벌 락을 획득하면 다른 세션에서 SELECT를 제외한 대부분의 DDL 문장이나 DML 문장을 실행하는 경우 글로벌 락이 해제될 때까지 해당 문장이 대기 상태로 남는다.영향을 미치는 범위는 MySQL

2023년 3월 8일
·
0개의 댓글
·

RealMySQL - MyISAM, MySQL 로그파일, 트랜잭션

MyISAM 테이블의 인덱스는 키 캐시를 이용해 디스크를 검색하지 않고도 충분히 빠르게 검색할 수 있다. 하지만 MyISAM 테이블의 데이터에 대해서는 디스크로부터의 I/O를 해결해 줄만한 어떠한 캐시나 버퍼링 기능도 MyISAM 스토리지 엔진은 가지고 있지 않다.그래

2023년 3월 1일
·
0개의 댓글
·
post-thumbnail

[SQL] 스토어드 프로그램

스토어드 프로그램은 절차적인 처리를 위해 사용되는 문법입니다. > 스토어드 프로그램을 작성하기 위해 먼저 문법을 알아야 하겠지만, 이번 장에서는 문법 보다는 자주 사용되는 제어문과 권한, 보안, 예외 핸들링 등 주의해야 할 사항을 위주로 학습합니다. 1. 스토어드 프

2023년 3월 1일
·
0개의 댓글
·
post-thumbnail

[Real MySQL] 09. 옵티마이저와 힌트

MySQL에서 쿼리를 최적으로 실행하기 위해 기본 데이터를 비교해 최적의 실행 계획을 수립하는 작업을 옵티마이저가 한다.파싱사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리한다.SQL 파서라는 모듈로 처리한다. SQL 파스

2023년 2월 19일
·
0개의 댓글
·
post-thumbnail

Real MySQL - 04 아키텍처

MySQL 에서 사용할 수 있는 스토리지 엔진 중 거의 유일하게 레코드 기반의 잠금을 제공한다.그렇기 때문에 높은 동시성 처리가 가능하고 성능이 뛰어나다.Inno DB의 모든 테이블은 기본적으로 프라이머리 키를 기준으로 클러스터링 되어 저장된다. 즉, 프라이머리 키 값

2023년 2월 17일
·
0개의 댓글
·

RealMySQL - InnoDB 스토리지 엔진 아키텍처

InnoDB의 모든 테이블은 기본적으로 프라이머리 키를 기준으로 클러스터링되어 저장된다.프라이머리 키 값의 순서대로 디스크에 저장된다.MyISAM 스토리지 엔진에서는 클러스터링 키를 지원하지 않는다.외래 키에 대한 지원은 MyISAM이나 MEMORY 테이블에서는 사용할

2023년 2월 16일
·
0개의 댓글
·

RealMySQL 8.0 아키텍처

04 아키텍처MySQL 엔진 아키텍처MySQL 엔진?클라이언트의 DB 접속, 쿼리 실행과 관련 ↔ 스토리지 엔진 - 데이터 저장, 읽기MySQL과 스토리지 엔진을 연결 해주는 핸들러 API. MySQL이 스토리지 엔진에게 실행을 전달 할 수 있는 접수 창구스토리지 엔진

2023년 2월 7일
·
0개의 댓글
·

RealMySQL 8.0 트랜잭션과 잠금

05 트랜잭션과 잠금MySQL의 격리 수준Transaction isolation level이란 A 트랜잭션이 변경하고 있을 때, B라는 트랜잭션이 그 값을 볼 수 있게 할지 못하게 할지를 결정하는 수준.→ 커밋되고 난 다음의 데이터를 봐! 아니야 커밋 되기전의 데이터를

2023년 2월 7일
·
0개의 댓글
·

RealMySQL 8.0 8장 인덱스

08 인덱스디스크 읽기 방식데이터베이스는 결국 디스크에 데이터가 저장되는 최종 형태이다. 따라서 하드웨어 중 가장 처리 속도가 느린 디스크가 DB의 처리 속도를 결정한다고 봐도 무방하다. 하드웨어적 성능을 논외로 소프트웨어적으로 성능을 최대한 끌어 올릴 수 있가에 대한

2023년 2월 7일
·
0개의 댓글
·

RealMySQL - 아키텍처

MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과 손발 역할을 담당하는 스토리지 엔진으로 구분할 수 있다.스토리지 엔진은 핸들러 API를 만족하면 누구든지 스토리지 엔진을 구현해서 MySQL 서버에 추가해서 사용할 수 있다.MySQL 엔진은클라이언트로부터

2023년 2월 7일
·
0개의 댓글
·
post-thumbnail

[Real MySQL] 08. 인덱스

데이터베이스 성능 튜닝은 어떻게 디스크 IO를 줄이느냐가 관건일 때가 많으므로, 랜덤 IO, 순차 IO와 같은 디스크 읽기 방식을 먼저 알아보자.SSD는 기존 하드 디스크 드라이브에서 데이터 저장용 플래터(원판)을 제거하고 그 대신 플래시 메모리를 장착하고 있다. 그래

2023년 2월 4일
·
0개의 댓글
·
post-thumbnail

[Real MySQL] 07. 데이터 암호화

데이터베이스 서버와 디스크 사이의 데이터 읽고 쓰기 지점에서 암호화 또는 복호화를 수행한다.디스크 입출력 이외의 부분에서는 암호화 처리가 전혀 필요치 않다. MySQL 서버(InnoDB 스토리지 엔진)의 I/O 레이어에서만 데이터의 암호화 및 복호화 과정이 실행된다.암

2023년 2월 4일
·
0개의 댓글
·
post-thumbnail

[Real MySQL] 06. 데이터 압축

MySQL 서버에서 디스크에 저장된 데이터 파일의 크기는 일반적으로 쿼리의 처리 성능과도 직결되지만 백업 및 복구 시간과도 밀접하게 연결된다.Transparent page compression 라고도 한다. MySQL 서버가 디스크에 저장하는 시점에 데이터 페이지가

2023년 2월 4일
·
0개의 댓글
·
post-thumbnail

[Real MySQL] 05. 트랜잭션과 잠금

트랜잭션은 작업의 완전성을 보장해주는 것이다. 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능이다.잠금은 동시성을 제어하기 위한 기능이고 트랜잭션은 데이터의 정합성을

2023년 2월 4일
·
0개의 댓글
·