[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;
성능 로그 테이블에서 특정 기간 동안의 쿼리 실행 시간이 긴 순서대로 조회하여 성능 이슈를 해결하는 데 활용할 수 있습니다.
위의 쿼리들을 주기적으로 실행하고 결과를 분석하여 데이터베이스의 성능을 지속적으로 관리하고 최적화할 수 있습니다.
참고 자료
- MySQL 공식 문서: https://dev.mysql.com/doc/