Skip to content

Commit

Permalink
docs: 7장~8장
Browse files Browse the repository at this point in the history
  • Loading branch information
minenam committed Oct 24, 2024
1 parent 7940cf1 commit 8edf9e8
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 0 deletions.
66 changes: 66 additions & 0 deletions 7장/7_데이터_암호화_남혜민.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# MySQL 서버의 데이터 암호화

MySQL 서버 (InnoDB 스토리지 엔진)의 I/O 레이어에서만 데이터 암호화 및 복호화 실행

TDE(Transparent Data Encryption) = Data at Rest Encryption : 암호화 및 복호화를 디스크에 저장된 단계에서만 암호화 된다

### 2단계 키 관리

테이블스페이스 키 = 프라이빗 키
마스터 키 = 외부 키 관리 솔루션이나 디스크 파일
마스터 키는 외부 노출될 가능성이 있어 주기적으로 변경해야 함

### 암호화와 성능

디스크로부터 한 번 읽은 데이터 페이지는 복호화되어 InnoDB 버퍼 풀에 저장됨
같은 테이블에 대해 암호화와 압축이 동시에 적용되면 압축 먼저 적용하고 암호화 실행

### 암호화와 복제

소스 서버와 레플리카 서버는 서로 각자의 마스터 키, 테이블스페이스 키를 관리하여 복제된 데이터 파일이 암호화되는 값은 다름

# keyring_file 플러그인 설치

커뮤니티 에디션에서만 가능
마스터키를 디스크 파일에 평문으로 저장됨. 보안 위험 있음

# 테이블 암호화

### 테이블 생성

```sql
CREATE TABLE t1 (id INT, data VARCHAR(100)) ENCRYPTION='Y';
```

### 응용 프로그램 암호화와의 비교

MySQL 서버 암호화가 더 나음: 응용 프로그램의 암호화는 평문 내용으로 확인하기 어려움

### 태이블스페이스 이동

암호화된 테이블을 다른 테이블스페이스로 이동하면 암호화 키도 함께 이동됨

```sql
FLUSH TABLES t1 FOR EXPORT;
```

# 언두 로그 및 리두 로그 암호화

테이블스페이스 키로 암호화 되고 테이블스페이스 키는 다시 마스터 키로 암호화 됨
테이블스페이스 키 = 리두 로그와 언두로그 파일을 위한 프라이빗 키

각각 프라이빗 키 발급, 해당 키는 암호화 되어 각 파일의 헤더로 저장

# 바이너리 로그 암호화

증분 백업을 위해 보관하기도 함

### 바이너리 로그 암호화 키 관리

파일키 : 바이너리 로그 암호화 키 로 암호화, 테이블 암호화 마스커 키와 동일

### 바이너리 로그 암호화 키 변경

바이너리 로그 암호화 키 변경 시, 새로운 키로 바이너리 로그 파일을 재생성해야 함

### mysqlbinlog 도구 활용
40 changes: 40 additions & 0 deletions 8장/8_인덱스_남혜민.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 디스크 읽기 방식

### 하드 디스크 드라이브(HDD) 와 솔리드 스테이트 드라이브(SSD) 의 차이점

데이터 베이스 서버에서 순차 I/O는 비중이 크기 않음
랜덤 I/O로 작은 데이터 읽고 쓰기 작업이 대부분임

따라서 SSD 의 장점이 잘 드러남

### 랜덤 I/O와 순차 I/O

디스크 성능: 얼마나 많은 데이터를 한 번에 기록하느냐에 따라 결정
여러 번 쓰기 또는 읽기 요청하는 랜덤 I/O는 성능 저하를 가져옴

# 인덱스란?

인덱스 크기가 비대해지면 역효과를 불러옴

- 프라이머리 키
- 보조키 (세컨더리 인덱스)

# B-Tree 인덱스

### 구조 및 특성

### B-Tree 인덱스의 키 추가 및 삭제

#### 인덱스 키 검색

### B-Tree 인덱스 사용에 영향을 미치는 요소

####

### B-Tree 인덱스를 통한 데이터 읽기

### 다중 칼럼(Multi-Column) 인덱스

### B-Tree 인덱스의 정렬 및 스캔 방향

### B-Tree 인덱스의 가용성과 효율성

0 comments on commit 8edf9e8

Please sign in to comment.