데이터베이스

    [MySQL] 파티션

    Real MySQL 8.0 읽으면서 배웠던 부분들을 정리한 글입니다. 파티션 데이터베이스의 크기가 커지면서 발생하는 용량의 한계와 성능 저하를 해결하기 위해 데이터를 여러 부분으로 분할하는 작업을 의미한다. 파티션이 필요한 경우 하나의 테이블이 너무 커서 인덱스의 크기가 물리적 메모리를 초과할 경우 데이터 특성상 주기적인 삭제 작업이 필요한 경우 파티션의 장점 단일 INSERT와 단일 또는 범위 SELECT의 빠른 처리 인덱스의 워킹 셋이 실질적인 물리 메모리보다 크다면 SELECT 뿐만 아니라 UPDATE, DELETE 등 모든 쿼리 처리가 상당히 느려질 것이다. 파티션은 데이터와 인덱스를 조각화하여 물리적 메모리를 효율적으로 사용할 수 있도록 해준다. 워킹셋: 데이터 중 활발하게 사용되는 부분. 워킹..

    [MySQL] MySQL 엔진 아키텍처

    Real MySQL 8.0 읽으면서 배웠던 부분들을 정리한 글입니다. MySQL 엔진 아키텍처 MySQL 엔진 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행한다. MySQL엔진은 커넥션 핸들러, SQL 파서, 전처리기, 옵티마이저로 구성되어 있다. 또한 MySQL은 표준 SQL 문법을 지원하기 때문에 표준 문법에 따라 작성된 쿼리는 타 DBMS와 호환되어 실행될 수 있다. 스토리지 엔진 디스크 스토리지에 실제 데이터를 저장하고 읽어오는 부분을 전담한다. 하나의 MySQL 서버에서 MySQL 엔진은 하나이지만, 스토리지 엔진은 여러개를 동시에 사용할 수 있다. 각 스토리지 엔진은 성능 향상을 위해 키 캐시나 InnoDB 버퍼 풀 같은 기능을 내장하고 있다. 핸들러 A..