데이터베이스13 [RealMySQL 8.0] 7장 데이터 암호화 8.0 부터 데이터 파일뿐만 아니라 리두 로그나 언두 로그, 복제를 위한 바이너리 로그도 암호화 기능을 지원한다.7.1 MySQL 서버의 데이터 암호화암호화 기능은 디스크 InnoDB 사이에서 암복화 과정이 수행된다.TDE, Transparent Data Encryption 이라고 한다.TDE 에서 암호화 키는 키링 플러그인에 의해 관리된다.keyring_file: 암호화 키를 파일로 저장한다.커뮤니티 에디션에서는 keyring_file 플러그인만 지원한다.keyring_encrypted_filekeyring_okvkeyring_aws다양한 플러그인은 마스터키를 관리하는 방법만 다르다.MySQL 암호화는 2단계 암호화를 사용한다.데이터는 테이블스페이스키로 암호화된다.테이블스페이스키는 변하지 않는 키이다.. 2025. 1. 9. [RealMySQL 8.0] 6장 데이터 압축 디스크 데이터 파일의 크기는 쿼리 성능과 백업 및 복구 시간에도 영향을 미친다.더 큰 크기의 데이터가 버퍼풀에 적재되므로 버퍼풀 사용의 효율성이 떨어지고, 더 많은 IO가 발생한다.데이터 압축은 테이블 압축과 페이지 압축 두 가지로 구분된다.6.1 페이지 압축페이지 압축과 해제는 디스크 스토리지 엔진 간에 일어나기 때문에 MySQL 서버 내부적으로는 압축 유무를 신경쓸 필요가 없다.이를 Transparanet Page Compression 이라고 한다.한 페이지가 얼마나 압축될지 모르기 때문에, 페이지 압축은 특정 버전의 파일 시스템에서만 지원되는 펀치홀이라는 기능을 사용한다.펀치홀은 압축되어 빈 공간에 대해 일부만 OS에 반납하는 기능이다.이런 제약으로 잘 사용되지 않는다. 테이블 생성 시 COMPR.. 2025. 1. 6. [RealMySQL 8.0] 5장 트랜잭션과 잠금 5.1 트랜잭션트랜잭션은 쿼리의 개수와는 상관없이, 논리적인 작업셋이 Atomic 하게 적용되어야 한다는 것을 의미한다.단일 쿼리 여러 데이터를 변경할 수 있으므로 트랜잭션 적용 대상이다.트랜잭션의 범위는 가급적 짧게 유지해야 한다.커넥션을 길게 잡고 있으면 커넥션 풀 성능 저하를 일으킨다.외부 IO 작업은 불확실성이 크므로 Tx에서 제거하자.원자적 일관성이 필요하지 않은 처리는 별도의 트랜잭션으로 분리하자.트랜잭션을 길게 잡고 있을 경우 DBMS 의 과도한 부하를 일으킬 수 있다.5.2 MySQL 엔진의 잠금잠금은 스토리지 잠금과 MySQL 엔진 잠금으로 나눌 수 있다.스토리지 잠금은 스토리지 엔진 간 영향을 미치지 않는다.MySQL 잠금은 모든 스토리지 엔진에 영향을 미친다.글로벌락MySQL에서 제공.. 2025. 1. 2. [RealMySQL 8.0] 4장 아키텍처 4.1 MySQL 엔진 아키텍처쿼리의 처리는 MySQL 엔진 -> 스토리지 엔진 순서로 처리된다.MySQL 엔진MySQL의 핵심적인 기능이 담겨있는 부분이다. 다음 내용은 처리 순서대로 아키텍처를 설명한 것이다.클라이언트의 연결을 생성한다. : 커넥션 핸들러가 담당한다.문자열인 SQL을 MySQL이 처리할 수 있도록 구조화한다. : SQL 파서가 담당한다.기본 문법 오류는 여기서 발견된다.구조화된 SQL이 유효한 지 검사한다 : 전처리기가 담당한다.테이블 이름, 칼럼 이름, 내장 함수들이 존재하는지 확인한다.권한을 확인한다.쿼리를 효과적으로 실행하기 위해 쿼리 실행 계획을 작성한다. : 옵티마이저가 담당한다.가장 저렴한 비용으로 쿼리를 수행하기 위한 전략을 세운다.데이터의 통계 정보, 인덱스 정보 등을 .. 2024. 12. 16. [RealMySQL 8.0] 3장 사용자 및 권한 3.1 사용자 식별MySQL은 사용자 계정과 접속 위치로 계정을 식별한다.모든 외부 클라이언트에서 접속이 가능하다면 'user_id'@'%' 처럼 호스트부분을 % 문자로 대체하면 된다.로그인 시 권한이나 계정 정보는 가장 작은 범위에 해당하는 정보에 매칭된다.관리 편의상 가급적 중복이 되지 않도록 하자.3.2 사용자 계정 관리8.0 부터 계정은 시스템 계정과 일반 계정으로 구분된다.시스템 계정 : SYSTEM_USER 권한을 가지고 있다. 데이터베이스 관리를 위한 계정이다.계정관리, 타 세션 쿼리 강제 종료 등이 가능하다.일반 계정 : SYSTEM_USER 권한을 가지고 있지 않다. 일반적인 데이터베이스 사용을 위한 계정이다.내장된 계정'mysql.sys'@localhost : 내장 스키마 객체의 DEF.. 2024. 12. 14. [RealMySQL 8.0] 1장. 소개, 2장. 설치와 설정 1.1 MySQL 소개MySQL이 오픈소스인 것은 여러 회사에서 MySQL이 사용되는 중요한 이유이다.그러나, MySQL이 처음부터 오픈소스였던 것은 아니다. 약 45년전인 1979년 Tcx 사의 사내 터미널 인터페이스에서부터 시작해 사내 데이터베이스로 변모 과정을 거쳐 1996년 사외에 공개됐다.MySQL은 오픈소스이나, 무제한적으로 사용할 수 있는 것은 아니다. 두 가지 라이센스 정책이 있다.MySQL 커뮤니티 에디션은 별도의 라이선스 계약 없이 사용할 수 있다. 소스코드도 공개된다.MySQL 엔터프라이즈 에디션은 커뮤니티 에디션에 스레드풀 등 추가 기능을 덧붙인 에디션이다. 오라클과 사용 계약을 맺고 사용해야하며, 소스코드는 공개되지 않는다.MySQL은 5.7 버전까지는 성능 개선이 주를 이뤘으나,.. 2024. 12. 10. CAP 이론 소개 - 데이터베이스 초보자용 밑에 세줄요약 있음 살펴보기 CAP 이론이란? MongoDB의 CP 시스템과 Cassandra의 AP 시스템 CAP란? 분산 데이터베이스는 방대한 데이터를 다루기에 유용한 시스템이다. 분산 데이터베이스는 수평 확장할 수 있기 때문에 트래픽이 증가하더라도 낮은 지연 시간을 유지할 수 있고, 일부 노드 장애에 적절히 대응할 수 있다. NoSQL 데이터베이스는 대표적인 분산 데이터베이스이며, 유연하게 데이터를 다룰 수 있다는 장점이 있다. NoSQL 데이터베이스는 서로 다른 특징을 가진 여러 제품이 있기 때문에 애플리케이션에 맞는 특성에 맞는 데이터베이스를 선택해야 한다. 이를 위해서는 각 제품의 특징뿐만 아니라 데이터베이스 이론 또한 이해해야 한다. CAP는 분산 데이베이스 속성에 관한 이론으로써, 분산 데.. 2022. 3. 26. 이전 1 2 다음