MySQL, MariaDB

MySQL/MariaDB Select 모니터링

SungWookKang 2019. 3. 24. 11:13
반응형

MySQL/MariaDB Select 모니터링

 

·      Version : MySQL 5.7, Docker

 

MySQL 뿐만 아니라 대부분의 OLTP 성 데이터베이스에서는 SELECT의 성능이 매우 중요하다. 일반적으로 관계형 데이터베이스에서는 JOIN을 많이 사용하기 때문에 SELECT에 따른 의도하지 않은 성능 문제나 잠금 문제가 발생할 수 있기 때문에 모니터링에 우선순위를 높여야 하며 최우선으로 튜닝을 해야 하는 포인트 이기도 하다. MySQL에서 SELECT에 대한 모니터링은 아래 스크립트를 실행하여 확인할 수 있다.

show status where variable_name like ‘select%’

 


 

각 항목에 대해서 어떤 의미를 가지는지 살펴보자.

Variable Name

Comment

Select_full_join

다중 테이블 조인 시 후행 테이블에서 전체 테이블 스캔이 발생한 횟수

Select_full_range_join

다중 테이블 조인시 제한된 범위내에서 JOIN키 값을 비교한 횟수

Select_range

SELECT쿼리의 범위 조건에 만족하는 레코드를 찾기 위해 제한된 범위를 디스크에서 읽은 횟수

Select_range_check

Select range와 동일한 범위에서 선행 테이블의 JOIN 칼럼 데이터가 후행 테이블의 컬럼 데이터와 같은 값인지 비교하는 횟수

Select_scan

전체 테이블 스캔이 발생한 횟수

 

일반적으로 Select_full_join 이 발생하면select_scan이 발생하기 때문에 두 지표 모두 값이 증가 한다. 또한 실행계획 타입에서 ALL 이 표시되면 카테시안곱이 발생한것을 의미한다. OLTP서비스에서는 Full scan은 피해야하는 항목으로 튜닝의 최우선 포인트가 된다.

 

기본적으로 table scan을 방지하기 위해서는 인덱스가 필요하며 JOIN 또는 Where 절에 사용되는 키 값에 대하여 인덱스를 잘 사용할 수 있도록 디자인되어야 한다.

 

 [참고자료]

https://dev.mysql.com/doc/refman/5.6/en/show-slave-status.html

 

 

2018-04-20 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

MySQL, select 모니터링, select_full_join, select_range, select_scan, OLTP, MySQL 모니터링



반응형

'MySQL, MariaDB' 카테고리의 다른 글

MySQL/MariaDB Table lock 모니터링  (0) 2019.03.24
MySQL/MariaDB Sort 모니터링  (0) 2019.03.24
MySQL/MariaDB Replication 모니터링  (0) 2019.03.24
Run the MySQL with Docker  (0) 2019.03.24
MySQL/MariaDB Handler 모니터링  (0) 2019.03.24