TencentDB for MySQL의 상응하는 기본 백업 데이터베이스, 재해 복구 인스턴스, 읽기 전용 인스턴스는 모두 MySQL 네이티브 binlog 복제 기술을 사용하며, 데이터 복제 방식이 비동기화 복제 또는 반동기화 복제인 경우 딜레이가 발생할 수 있습니다.
기본 키 또는 2단계 인덱스 없음
binlog가 row 포맷이고 테이블에 기본 키 또는 2단계 인덱스가 없는 상태에서 대용량 테이블에 DML 작업(예: delete, update, insert)을 진행하고 세컨더리 데이터베이스에서 binlog 로그를 응용하는 경우, 기본 키 또는 2단계 인덱스에 따라 변경할 행을 검색합니다. 해당 테이블에 기본 키 또는 2단계 인덱스를 생성하지 않은 경우 대량의 전체 테이블 스캔 작업으로 로그 응용 속도가 감소되고 데이터 딜레이가 발생합니다.
처리 순서는 기본 키 또는 2단계 인덱스 없음을 참고하십시오.
대규모 트랜잭션
대규모 트랜잭션: 데이터를 추가, 삭제, 수정하는 insert, update, delete, replace와 같은 명령을 의미합니다. 한 트랜잭션에 수백만 행의 데이터 작업이 포함되어 있거나 한 SQL 명령이 백만 행의 데이터를 수정하는 경우 실행 시간이 30초를 초과하게 됩니다.
프라이머리 인스턴스에서 대량의 데이터 DML 작업을 진행하여 대량의 binlog 로그가 세컨더리 데이터베이스로 전송되는 경우, 세컨더리 데이터베이스는 해당 트랜잭션을 완료하는 데 프라이머리 인스턴스와 동일한 시간을 소모하므로 세컨더리 데이터베이스에 데이터 딜레이가 발생합니다. 처리 순서는 트랜잭션을 참고하십시오.
DDL 작업
읽기 전용 노드에서는 사용자의 쿼리가 상위에서 실행됩니다. 읽기 전용 노드에 실행 시간이 긴 쿼리가 실행 중인 경우, 작업이 종료될 때까지 해당 쿼리가 프라이머리 데이터베이스의 DDL을 차단하여 읽기 전용 노드에 데이터 딜레이가 발생할 수 있습니다. 처리 순서는 DDL 작업을 참고하십시오.
너무 낮은 인스턴스 사양
읽기 전용 인스턴스, 재해 복구 인스턴스의 사양이 너무 낮고 프라이머리 인스턴스의 부하가 비교적 높은 경우, 읽기 전용 인스턴스, 재해 복구 인스턴스에 데이터 딜레이가 발생합니다.
처리 순서는 너무 낮은 인스턴스 사양을 참고하십시오.
Waiting for table metadata lock 오류 보고
대규모 트랜잭션이 실행되어 DDL을 차단하고 동일 테이블의 모든 후속 작업을 차단합니다. 미제출 트랜잭션이 DDL을 차단하고 동일 테이블의 모든 후속 작업을 차단합니다.
처리 순서는 Waiting for table metadata lock 오류 보고를 참고하십시오.
DBbrain 콘솔에 로그인한 후, 왼쪽 사이드바에서 진단 최적화를 선택한 다음 상단에서 해당하는 데이터베이스를 선택하고 용량 분석 페이지를 선택합니다.
2. 용량 분석 페이지 하단에서 기본 키가 없는 테이블 페이지를 선택해 리스트에서 기본 키가 없는 테이블을 클릭하면 테이블의 필드 및 인덱스 정보를 확인할 수 있습니다.
설명:기본 키가 없는 테이블 리스트는 정기 스캔(하루 1회 스캔) 및 수동 업데이트 두 가지 방식을 지원하며, 실제 상황에 따라 선택할 수 있습니다.
3. 2단계의 기본 키가 없는 테이블에 기본 키를 생성합니다. 테이블에 기본 키를 생성하지 못하는 경우 기수가 높은 열을 선택해 2단계 인덱스를 생성하는 것을 권장합니다.
설명:DBbrain을 통해 시간이 소모되는 대규모 트랜잭션을 파악하고 대규모 트랜잭션을 소규모 트랜잭션으로 분할하면 읽기 전용 노드에서 트랜잭션을 빠르게 완료할 수 있으며 데이터 딜레이가 발생하지 않습니다.
DBbrain을 사용하여 실제 비즈니스 및 인스턴스를 진단하고 슬로우 쿼리 등의 지표를 점검하여 시간을 소모하는 대규모 트랜잭션을 파악하는 것을 권장합니다.
문제 해결에 도움이 되었나요?