지난 4주 동안 Docker Mysql Percona 배포판(percona:8.0.32-24, 빈 my.cnf)에서 쿼리가 간헐적으로 영원히 실행되는 이유를 알아내려고 노력했습니다. 이 포스트스크립트 쿼리는 MySQL Shell의 데이터 마이닝 알고리즘을 사용하여 생성된 여러 CSV를 가져온 후 실행됩니다. 절반의 시간은 2~3초 안에 성공적으로 실행됩니다.
그렇지 않으면 올바른rows_inserted 숫자가 표시되더라도 중지되어 무한 루프(2일 이상)에 빠지고 rows_fetched 숫자가 계속 증가합니다(fig1.png). 이 쿼리를 실행하는 데 시간이 오래 걸리는 이유는 무엇이며 끊임없이 테이블을 읽는 이유는 무엇입니까(높은 행 가져오기)?
으아악** 쿼리가 실행되기 전에 2개의 측정항목(신뢰도 및 지지도)을 삽입하세요.
으아악INSERT 없이도 동일한 동작이 관찰됩니다.
설명문을 참조하세요(fig3.png). 무한 루프가 발생하면 다음이 관찰됩니다.
显示进程列表
:查询被标记为status =“执行”
.
显示引擎innodb状态
: 거래 섹션에서 쿼리를 찾을 수 없습니다.
select * from sys.schema_table_statistics WHERE table_schema = 'DB_NAME'
rows_fetched 출력이 무한히 늘어나는 것 같습니다. (fig1.png는 작동하지 않지만 fig4.png는 작동하며 둘 다 동일한 데이터에서 수행됩니다.)
어떤 도움이나 통찰력이라도 생명을 구할 수 있습니다.
PK 끝에
으아악值
를 추가하세요:322
来自 2+4*80,这意味着它仅使用一列。 (const
도 마찬가지이니 참고해주세요. )322바이트 전체가 할당된다는 의미는 아니지만, "최악의 시나리오"입니다.