MySQL은 현재 가장 널리 사용되는 오픈소스 관계형 데이터베이스 중 하나로 효율성, 신뢰성, 안정성 등 뛰어난 기능을 갖추고 있어 점점 더 많은 사람들에게 사랑받고 있습니다. 그러나 애플리케이션의 규모가 지속적으로 확장됨에 따라 그에 따른 MySQL 모니터링 및 최적화는 관리자가 무시할 수 없는 작업이 되었습니다.
MySQL 데이터 모니터링에는 주로 쿼리 분석, 통계 및 MySQL 실행 모니터링이 포함됩니다. 이러한 작업의 목적은 데이터베이스의 상태를 파악하고, 적시에 문제를 발견 및 해결하며, 데이터베이스의 성능과 안정성을 향상시키고, 원활한 비즈니스 운영을 보장하는 것입니다. 다음으로 이러한 모니터링 작업을 하나씩 구현하는 방법을 소개하겠습니다.
1. 쿼리 분석
MySQL 성능 최적화는 SQL 쿼리 최적화와 불가분의 관계입니다. 쿼리 병목 현상과 최적화 공간을 찾는 방법은 쿼리 분석 기술에 의존해야 합니다.
1. 느린 쿼리 로그를 사용하세요
MySQL에는 느린 쿼리 로그 기능이 있어서 실행 시간이 특정 시간 임계값을 초과하는 SQL을 기록할 수 있어, 수행되는 SQL 문을 쉽게 찾을 수 있습니다. 실행하는 데 시간이 더 걸립니다.
단계는 다음과 같습니다.
(1) MySQL의 느린 쿼리 로그 기능을 켜고 MySQL 구성 파일을 편집합니다.
vim /etc/mysql/mysql.conf.d/mysqld.cnf
다음 두 줄을 찾아 'slow_query_log'를 'on'으로 설정하고 실행을 지정합니다. 느린 쿼리의 시간 임계값(단위는 초), 여기서는 5초로 설정되어 있습니다:
slow_query_log=ON slow_query_log_file=/var/log/mysql/mysql-slow.log long_query_time=5
(2) MySQL 서비스 다시 시작:
sudo service mysql restart
(3) 느린 쿼리 로그 확인:
sudo tail -f /var/log/mysql/mysql-slow.log
2 explain을 사용합니다. 쿼리 실행 계획
SQL 쿼리가 발견되었을 때 실행 효율성이 충분히 높지 않은 경우 최적화가 필요합니다. 최적화하려면 쿼리 실행 계획을 이해해야 합니다.
MySQL은 'explain'을 통해 쿼리 실행 계획을 분석하는 기능을 제공하는데, 이를 통해 쿼리 병목 현상을 보다 쉽게 찾을 수 있습니다.
구문은 다음과 같습니다.
EXPLAIN SELECT ...
문을 실행한 후 MySQL은 어떤 인덱스가 사용되는지, 어떤 테이블이 사용되는지, 어떤 작업이 수행되는지 등을 포함하여 쿼리의 실행 계획이 포함된 결과 세트를 반환합니다. 정보.
실행 계획을 분석하면 느리게 실행되는 쿼리의 병목 현상을 찾아 쿼리 문을 개선하고 쿼리 효율성을 높일 수 있습니다.
2. 데이터 통계
MySQL 데이터 통계는 주로 다음을 포함하는 MySQL 인스턴스의 다양한 작동 상태를 수집, 분석 및 표시합니다.
1. 인스턴스 상태 통계: MySQL 인스턴스의 연결 수 및 스레드 수를 포함합니다. , 운영 체제와의 IO 상호 작용 수 등
2. SQL 문 통계: MySQL 인스턴스에서 실행 중인 SQL 문을 가로채서 실행 횟수, 평균 실행 시간, 실행 상태 등 일부 정보를 계산합니다.
3. 테이블 상태 통계: 워크로드에 따른 테이블 상태, 사용 빈도, 사용 방법 등 분석이 포함됩니다.
MySQL에서 일반적으로 사용되는 데이터 통계 도구는 다음과 같습니다.
MySQL에는 MySQL이 요청하려는 다양한 리소스의 상태를 계산할 수 있는 show status 명령이 함께 제공됩니다. 예:
show status like "%thread%";
이 문은 현재 실행 중인 스레드와 실행되지 않는 휴면 스레드를 포함하여 모든 스레드에 대한 정보를 반환합니다.
MySQL 콘솔은 시스템 성능, 매개변수, 스레드 및 프로세스 상태를 볼 수 있는 기능을 제공합니다.
mysql -uroot -ppassword -e "show status like '%Threads_connected%';show processlistG"
3. 오류 진단을 위해 pt-stalk를 사용하세요
pt-stalk는 지정된 매개변수에 따라 오류 로그를 실시간으로 캡처하고 서버 상태 정보 등을 수집할 수 있는 매우 실용적인 MySQL 오류 진단 도구입니다. 엔지니어는 결함의 원인을 신속하게 찾습니다.
pt-stalk --function=status --run-time=60 --dest /var/tmp
3. 데이터 모니터링
데이터 모니터링은 MySQL 모니터링의 궁극적인 목표입니다. MySQL의 실행 상태 모니터링에는 다음이 포함됩니다.
일반적으로 사용되는 MySQL 모니터링 도구는 다음과 같습니다.
top 명령은 Linux 시스템의 프로세스 모니터링 도구로, 현재 시스템의 포괄적인 프로세스 모니터링을 달성할 수 있습니다.
top -b -n 1 | grep -E 'Cpu|Mem|mysql'
htop 명령은 이해하기 쉽지 않은 상단의 일부 약어를 설명합니다. 또한 실행 중인 프로세스를 색상으로 표시하여 사람이 더 쉽게 읽을 수 있도록 지원합니다.
2. 모니터링에 Nagios를 사용하세요
Nagios는 네트워크, 호스트 등 다양한 장치를 모니터링할 수 있는 오픈소스 모니터링 도구입니다. 각 노드에 Nagios 모니터링 플러그인을 설치하면 MySQL 프로세스, CPU, 네트워크 등을 모니터링할 수 있습니다.
3. mysqladmin 도구 사용
mysqladmin은 MySQL에서 공식적으로 제공하는 명령줄 도구로, MySQL 프로세스와 실행 상태를 모니터링하는 데 사용할 수 있는 다양한 옵션과 매개변수를 제공합니다.
mysqladmin -uroot -p -h127.0.0.1 processlist
수동으로 명령을 실행하기에는 너무 게으른 경우 오픈 소스 모니터링 도구인 Zabbix를 사용하여 모니터링할 수 있습니다.
IV. 요약
쿼리 분석, 데이터 통계, 데이터 모니터링 및 기타 수단을 통해 더 잘 이해할 수 있습니다. MySQL 인스턴스의 운영 상태를 적시에 파악하고 문제를 해결하여 MySQL 성능과 안정성을 향상시킵니다. MySQL 자체는 다양한 내장 도구를 제공하며, 관리자는 실제 요구 사항과 운영 및 유지 관리 기능에 따라 선택하여 사용할 수 있는 도구도 많이 있습니다.
위 내용은 MySql 데이터 모니터링: 쿼리 분석, 통계 및 MySQL 실행 모니터링 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!