MySQL 테이블이 잠겨 있는지 확인하는 방법: 먼저 명령 창에 들어간 다음 "show Engine innodb statusG;" 명령을 실행하여 교착 상태를 일으키는 SQL 문을 확인하고 인덱스 상황을 분석합니다.
mysql 명령줄에서 직접 실행 가능: show 엔진 innodb statusG;
교착 상태를 일으킨 SQL 문을 보고 인덱스 상황을 분석한 다음 SQL을 최적화하고 프로세스 목록을 표시합니다.
권장 강좌: MySQL 튜토리얼 .
mysql> show status like 'Table%';
+----------------------------+----------+ | Variable_name | Value | +----------------------------+----------+ | Table_locks_immediate | 105 | | Table_locks_waited | 3 | +----------------------------+----------+
Table_locks_immediate는 테이블 수준 잠금을 즉시 얻을 수 있는 횟수를 나타냅니다.
Table_locks_waited는 테이블 수준 잠금을 즉시 얻을 수 없고 필요한 횟수를 나타냅니다. to wait
show OPEN TABLES where In_use > 0; 이 명령문은 현재 잠금 테이블 상태를 기록합니다.
my.ini 구성 파일의 [mysqld] 옵션에 추가하세요:
slow_query_log=TRUE
slow_query_log_file=c:/ Slow_query_log.txt
long_query_time=3
추가가 완료된 후 mysql 서비스를 다시 시작해야 적용되고 출력이 기록됩니다. 마지막으로 MySQL 클라이언트에 다음 명령을 입력하세요.
'%quer%'와 같은 변수 표시, 정상인지 확인
mysql 느린 쿼리 로그 활성화
구성 보기:
//查看慢查询时间 show variables like "long_query_time";默认10s //查看慢查询配置情况 show status like "%slow_queries%"; //查看慢查询日志路径 show variables like "%slow%"; -slow_query_log是否记录慢查询。用long_query_time变量的值来确定“慢查询”。 -slow_query_log_file慢日志文件路径 -long_query_time慢日志执行时长(秒),超过设定的时间才会记日志
본점으로 돌아가서 문제의 시작점 Mysql 쿼리 테이블 교착 상태 및 테이블 교착 상태 종료
1. 테이블이 잠겨 있는지 쿼리 show OPEN TABLES where In_use > 0;
show processlist 해당 프로세스 쿼리 = == 그리고 ID 삭제
추가됨:
잠긴 트랜잭션 보기
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
잠금 대기 중인 트랜잭션 보기
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
위 내용은 MySQL은 테이블이 잠겨 있는지 확인합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!