찾다

 >  Q&A  >  본문

MySQL - 단순 쿼리는 때때로 무한 루프와 가져오는 행 수의 증가로 인해 어려움을 겪습니다.

지난 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). 무한 루프가 발생하면 다음이 관찰됩니다.

어떤 도움이나 통찰력이라도 생명을 구할 수 있습니다.

P粉022140576P粉022140576445일 전620

모든 응답(1)나는 대답할 것이다

  • P粉645569197

    P粉6455691972023-09-09 00:15:17

    PK 끝에 를 추가하세요:

    으아악

    322 来自 2+4*80,这意味着它仅使用一列。 (const도 마찬가지이니 참고해주세요. )

    • 2바이트 길이 필드
    • utf8mb4 문자당 최대 4바이트
    • 성명 80자

    322바이트 전체가 할당된다는 의미는 아니지만, "최악의 시나리오"입니다.

    회신하다
    0
  • 취소회신하다