
Real MySQL 8.0 1권

Real MySQL 8.0 1권본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.MySQL은 1979년 스웨덴의 TcX 회사의 터미널 인터페이스 라이브러리인 UNIREG로부터 시작했다. 이전에는 TcX 사내에서 사용되다가 1996년 일반인에게 공

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.MySQL 서버의 두 에디션의 경우 상용화 방식은 모두 동일하지만, 아래의 특정 부가 기능들은 엔터프라이즈 에디션에서만 지원한다.Thread PoolEnterprise AuditEnterprise

Real MySQL 8.0 1권본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.MySQL의 경우 타 RDBMS와 다르게 사용자의 계정 뿐만 아니라 접속 지점 또한 계정의 일부가 되므로 아이디와 호스트를 함께 명시해야 한다. MySQL 서버의 계

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다. 4.1 MySQL 엔진 아키텍처 MySQL 공식 아키텍처

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.InnoDB 구조InnoDB의 모든 테이블은 프라이머리 키를 기준으로 클러스터링되어 저장된다. 즉 프라이머리 키 값의 순서대로 디스크에 저장되며, 모든 세컨더리 인덱스는 레코드의 주소 대신 프라이

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.InnoDB 스토리지 엔진의 리두 로그는 공간 낭비를 막기 위해 페이지의 변경된 내용만 기록한다. 이로 인해 더티 페이지를 디스크 파일로 플러시할 때 일부만 기록하는 문제가 발생하면 그 페이지 내

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다. 4.3 MyISAM 스토리지 엔진 아키텍처 4.3.1 키 캐시 InnoDB의 버퍼 풀과 비슷한 역할을 하는 것이 MyISAM의 키 캐시로, 인덱스만을 대상으로 작동하며 인덱스의 디스크 쓰기

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.트랜잭션은 하나의 논리적인 작업 셋에 쿼리의 개수와 관계없이 논리적인 작업 셋 자체가 100% 적용되거나 아무것도 적용되지 않아야 함을 보장해 주는 것이다.InnoDB와 달리 MyISAM, MEM

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다. 06. 데이터 압축 6.1 데이터 압축 페이지 압축은 Transparent Page Compression 이라고도 불리는데, MySQL 서버가 디스크에 저장하는 시점에서 데이터 페이지가 압축되

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.MySQL 서버의 암호화 기능은 위 이미지와 같이 데이터베이스 서버와 디스크 사이의 데이터를 읽고 쓰기 지점에서 암호화 또는 복호화를 수행하는데, MySQL 서버에서 디스크 입출력 이외의 부분에서

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.컴퓨터에서 CPU나 메모리 같은 주요 장치는 대부분 전자식 장치지만 하드 디스크 드라이브는 기계식 장치다. 그래서 데이터베이스 서버에서는 항상 디스크 장치가 병목이 된다. 이를 대체하기 위해 전자

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.B-Tree는 데이터베이스의 인덱싱 알고리즘 가운데 가장 일반적으로 사용되고 먼저 도입된 알고리즘이며, 아직도 가장 범용적인 목적으로 사용되는 인덱스 알고리즘이다. B-Tree는 일반적으로 DBM

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.MySQL의 공간 인덱스(Spartial Index)는 R-Tree 인덱스 알고리즘을 이용해 2차원의 데이터를 인덱싱하고 검색하는 목적의 인덱스로, 기본적인 내부 매커니즘은 B-Tree와 흡사하다

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.클러스터링 인덱스는 프라이머리 키 값이 비슷한 레코드끼리 묶어서 저장하는 것을 의미한다. 프라이머리 키 값에 의해 레코드의 저장 위치가 결정 및 변경되기 때문에 프라이머리 키의 의존도가 상당히 크

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다. 9.1 개요 9.1.1 쿼리 실행 절차 MySQL 서버에서 쿼리가 실행되는 과정은 크게 세 단계로 나눌 수 있다.

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.옵티마이저 스위치 옵션은 optimizer_switch 시스템 변수를 이용해 여러 개의 옵션을 세트로 묶어서 설정하는 방식으로 사용하며, 설정할 수 있는 최적화 옵션은 다음과 같다.MRR은 Mul

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.LooseScan은 인덱스를 사용하는 GROUP BY 최적화 방법의 루스 인덱스 스캔과 비슷한 읽기 방식을 사용한다.위 쿼리에서 dept_emp 테이블에는 (dept_no + emp_no) 칼럼의

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.인덱스 힌트는 옵티마이저 힌드가 도입되기 전에 사용되던 기능들로, ANSI-SQL 표준 문법을 준수하지 못하는 단점이 있기 때문에 가능하다면 옵티마이저 힌트를 사용하자.STRAIGHT_JOIN은

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.MySQL 5.5 버전까지는 각 테이블의 통계 정보가 메모리에 관리되어, MySQL 서버가 재시작되면 수집되었던 통계 정보가 모두 사라졌다.MySQL 5.6 버전부터는 InnoDB 스토리지 엔진을

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.하나의 SELECT 문장은 1개 이상의 하위 SELECT 문장을 포함할 수 있으며, 이는 다시 SELECT 키워드 단위로 구분하여 나타낼 수 있다. 이를 단위(SELECT) 쿼리라고 표현하겠다.실

본 포스트는 Real MySQL 8.0 1권을 읽은 뒤 정리하는 글입니다.쿼리의 실행 계획에서 const 접근 방법으로 테이블을 읽었지만 실제로 해당 테이블에 레코드가 1건도 존재하지 않으면 Extra 칼럼에 "const row not found" 문구가 표시된다.My