[sql] SQL 데이터베이스 성능 통계 수집에서 자주 사용되는 쿼리는 어떤 것들이 있나요?

SQL 데이터베이스의 성능 통계를 수집하고 분석하는 것은 데이터베이스 운영 및 성능 최적화에 중요한 요소입니다. 다음은 자주 사용되는 성능 통계 수집을 위한 SQL 쿼리 예시입니다.

1. 테이블 크기와 로우 수 확인

SELECT 
    table_schema AS `Database`, 
    table_name AS `Table`, 
    round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`,
    table_rows 
FROM information_schema.TABLES 
ORDER BY (data_length + index_length) DESC;

이 쿼리는 각 테이블의 데이터 및 인덱스 크기, 로우 수를 조회하여 데이터베이스의 크기 및 성장 추이를 파악하는데 유용합니다.

2. 인덱스 사용 및 성능 확인

SHOW INDEX FROM table_name;

인덱스의 현재 상태를 확인하고, 인덱스의 효율성 및 성능을 평가하는 데 사용됩니다.

3. 쿼리 실행 계획 확인

EXPLAIN SELECT * FROM table_name WHERE condition;

실행 계획을 확인하여 쿼리가 어떻게 실행되는지, 인덱스가 올바르게 활용되는지, 어떤 종류의 조인이 발생하는지 등을 확인할 수 있습니다.

4. 성능 로그 분석 쿼리

SELECT * FROM performance_log WHERE date BETWEEN '2022-01-01' AND '2022-12-31' ORDER BY execution_time DESC;

성능 로그 테이블에서 특정 기간 동안의 쿼리 실행 시간이 긴 순서대로 조회하여 성능 이슈를 해결하는 데 활용할 수 있습니다.

위의 쿼리들을 주기적으로 실행하고 결과를 분석하여 데이터베이스의 성능을 지속적으로 관리하고 최적화할 수 있습니다.

참고 자료