본문 바로가기

DB

(2)
[MySQL] MySQL 최적화에 대한 공부(1/2) MySQL에 대해서 여러 쿼리를 날려도 같은 값이 돌아오지만 실제로 걸리는 시간에 대해서는 고민하지 않았었다. 실제로 SQL을 작성할 때 결과 값만을 생각만 했고 이에 어떻게 최적화를 하는지 몰랐다. 그래서 최적화를 하기 위해서 책을 읽었고 이를 기억하기 위해서 글로 남긴다. 이 글은 Real MySQL을 기준으로 한다. 또한 여러 최적화 중 몇 가지를 알려주기에 더 많은 공부를 하고 싶다면 Real MySQL 책을 읽거나 공식문서를 읽기 바란다. 이 글의 MySQL 버전은 8.0.37 버전이라는 점을 유의하자. NoOffSet전략페이징 쿼리를 작성할때 LIMIT, OFFSET 구문을 사용하는데 실제로 LIMIT, OFFSET 구문을 사용하면 DBMS에 더 많은 부하를 발생한다. 실제로 LIMIT 10 ..
[MySQL] MySQL 아키텍처 구조에 대한 공부 MySQL의 전체 구조MySQL 엔진클라이언트 접속과 SQL 요청을 처리하는 커넥션 핸들러, 쿼리 파서, 전처리기, 옵티마이저, 실행 엔진 등으로 구성되어 있다. MySQL은 표준 SQL 문법을 지원하기 때문에 표준 문법에 따라 작성된 쿼리는 타 DBMS에서 실행이 가능하다.스토리지 엔진데이터를 실제로 디스크에 저장하거나, 디스크에 저장된 데이터를 읽어오는 역할을 담당한다. MySQL에서는 여러 가지 스토리지 엔진을 사용하는 게 가능하다. InnoDB, MyISAM, NDB Cluster, Memory 등 여러 가지 스토리지 엔진을 가지고 있다.운영체제 & 하드웨어실제 테이블 데이터와 로그 데이터를 파일로 저장한다. 위에서 MySQL 엔진과 스토리지 엔진은 서로 핸들러 API를 사용하여 데이터를 주고 받..