2025/03/09 3

[Real MySQL] 9-1. 옵티마이저와 힌트: 기본 데이터 처리

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.1. 개요쿼리 실행 절차SQL ParserSQL 문장을 잘게 쪼개서 Parse Tree 생성 (MySQL 서버가 이해할 수 있음)SQL Parser라는 모듈이 담당함문법 검사최적화 및 실행 계획 수립Parse Tree를 참조하여 결정함불필요한 조건 및 복잡한 연산의 단순화어떤 테이블을 먼저 읽을 것인지인덱스 통계 정보를 이용해 사용할 인덱스 결정가져온 레코드들을 임시 테이블에 넣고 추가로 가공해야 할지 여부 결정스토리지 엔진으로부터 데이터를 가져옴 옵티마이저 종류데이터베이스 서버에서 두뇌와 같은 역할최적의 실행 계획을 수립함 비용 기반 최적화 쿼리를 처리하기 위한 여러 가지 방법을 만듬실행 계획별 비용을 산출 (각 단위 작업의 비용 ..

Database/Mysql 2025.03.09

[Real MySQL] 7-2. 데이터 암호화: 테이블 & 로그

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.1. 테이블 암호화일반적인 테이블 생성 구문과 동일 암호화테이블 생성 ENCRYPTION 옵션 추가하기default_table_encrtyption 시스템 변수 활성화하기 응용 프로그램 암호화버퍼 풀에 데이터가 암호화되어 적재됨인덱스를 사용할 수 없음평문의 내용을 바로 확인할 수 없음 테이블스페이스 이동테이블의 데이터 파일만 백업했다가 복구 Flush 명령어FLUSH TABLES source_table FOR EXPORT;source_table 구조를 source_table.cfg에 저장source_table.ibd와 source_table.cfg를 목적지 서버로 복사UNLOCK TABLES 명령어를 수행하여 잠금 풀기 2. 언두 로..

Database/Mysql 2025.03.09

[Real MySQL] 7-1. 데이터 암호화: MySQL 서버

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.1. MySQL 서버의 데이터 암호화TDE스토리지 엔진의 I/O 레이어와 디스크 사이에서 암호화/복호화 수행즉, 데이터 파일이 디스크에 저장될 떄 암호화되고 읽을 떄 복호화됨MySQL 서버에서는 테이블의 데이터가 암호화되있는지 여부를 파악할 필요 없음 2단계 키 관리master key데이터베이스 전체의 키를 관리하는 최상위 키 (데이터를 암호화는 것이 아니라, tablespace key를 암호화)파일에 의해 관리되므로 보안상 주기적으로 변경해야 함키 변경) ALTER INSTANCE ROTATE INNODB MASTER KEY; tablespace key (private key)각 테이블마다 개별적으로 존재하는 키마스터 키에 의해 암..

Database/Mysql 2025.03.09