본문 바로가기

데이터베이스34

MySQL 힌트 데이터베이스 쿼리 최적화를 위한 HINT이다. 잘못된 경로의 인덱스를 타는 것을 막아준다. 종류 USE INDEX (인덱스명) IGNORE INDEX (인덱스명) FORCE INDEX (인덱스명) USE INDEX FOR ORDER BY (인덱스명) USE INDEX FOR GROUP BY (인덱스명) 문법 SELECT * FROM 테이블명 IGNORE INDEX (인덱스명1, 인덱스명2) WHERE 조건절; SELECT * FROM 테이블명 USE INDEX FOR ORDER BY (인덱스명3); 2023. 1. 18.
my.cnf ( my.ini ) MySQL 최적화와 관련된 변수. MySQL 서버의 가장 적합한 설정이란 쉽지 않다. 단순 하드웨어가 아닌 워크로드, 데이터, 애플리케이션 요구 사항에 맞게 서버를 설정해야 합니다. MySQL에는 변경할 수 있는 수많은 설정이 있지만, 변경해서는 안되는 설정이 많다. 일반적으로 기본 설정이 더 좋으며 스키마 최적화, 인덱스, 쿼리 디자인에 더 많은 시간을 투자하는 것이 좋다. 스택오버플로, MySQL 포럼 등 인기 있는 사이트에서 최적의 설정이라고 올라온 자료들이 많다. 하지만 변경으로 인한 영향을 이해하지 않고 설정을 변경하면 서버 장애, 지속적인 지연, 성능 저하로 이어질 수 있다. my.cnf 파일은 시스템 환경 변수를 담고 있는 파일입니다. 성능 최적화를 하려면 하드웨어, RAID, MySQL의 I/O 동작, 메모리 사용량, 동시.. 2023. 1. 14.
Buffer Pool과 redo의 관계 1. Buffer Pool 먼저 MySQL Buffer Pool 에 대해 알고 있어야한다. Buffer Pool은 Innodb 스토리지 엔진에서 가장 핵심적인 부분을 담당하고 있다. 디스크의 데이터 파일이나 인덱스의 정보를 메모리에 캐싱한다. 또, 쓰기 작업을 지연시켜 일괄 배치 작업으로 처리하여 디스크에 접근하는 i/o를 최적화할 수 있다. 2. Log Buffer Innodb의 버퍼 풀은 서버의 메모리가 허용하는 만큼 크게 설정하면 많은 양의 데이터를 캐싱할 수 있기 때문에 디스크 접근에 대한 i/o가 발생하지 않아 성능이 좋아진다. 모든 데이터 파일이 Buffer Pool에 적재될 정도의 크기라면 Buffer Pool 크기를 더 늘려도 성능에 도움이 되지 않지만, 그렇지 않은 경우 성능 향상에 도움.. 2023. 1. 13.
MySQL Buffer Pool 1. MySQL Buffer Pool 이란?? Innodb 스토리지 엔진에서 가장 핵심적인 부분을 담당하고 있다. 디스크의 데이터 파일이나 인덱스의 정보를 메모리에 캐싱한다. 또, 쓰기 작업을 지연시켜 일괄 배치 작업으로 처리하여 디스크에 접근하는 i/o를 최적화할 수 있다. 2. Buffer Pool 크기 할당 운영체제와 각 MySQL 엔진에서 사용할 메모리도 고려하면서 설정을 해야된다. MySQL 엔진에서 크게 메모리가 사용되는 부분은 없지만, 레코드 버퍼가 상당한 메모리를 사용하기도 한다고 한다. 레코드 버퍼는 각 클라이언트 세션에서 테이블의 레코드를 읽고 쓸 때 버퍼로 사용하는 공간을 의미하고, 커넥션이 많고 사용하는 테이블도 많다면 레코드 버퍼 용도로 사용되는 메모리 공간이 필요할 수 있다. M.. 2023. 1. 13.