반응형
MySQL이 "데이터 전송 중" 상태이면 어떤 의미입니까?
Mysql 쿼리가 다음과 같은 경우 이는 무엇을 의미합니까?
SHOW PROCESSLIST;
[ State ]컬럼에 "Sending data"가 반환됩니까?
쿼리가 실행되어 MySQL이 클라이언트에 "결과" 데이터를 전송하고 있는 것을 의미한다고 생각합니다만, 왜 이렇게 시간이 걸리는지(최대 1시간) 의문입니다.
감사해요.
이것은 꽤 오해의 소지가 있는 상태입니다.이를 "데이터 읽기 및 필터링"이라고 합니다.
즉,MySQL
디스크(또는 메모리)에 저장된 일부 데이터가 아직 읽혀져 전송되지 않았습니다.테이블 자체, 인덱스, 임시 테이블, 정렬된 출력 등이 있을 수 있습니다.
1개의 레코드만 필요한 100만 레코드 테이블(인덱스 없음)이 있는 경우MySQL
는, 아직 아무것도 송신하지 않았는데도, 테이블을 스캔 하고 있는 동안에도, 스테이터스를 「스캔 데이터」로서 출력합니다.
MySQL 8.0.17 이후:이 상태는 더 이상 개별적으로 표시되지 않고 실행 상태에 포함됩니다.
이 상태:
스레드는 SELECT 문의 행을 읽고 처리하며 클라이언트에 데이터를 전송합니다.
이 상태에서 발생하는 작업은 대량의 디스크 액세스(읽기)를 실행하는 경향이 있습니다.
따라서 완료에 더 많은 시간이 걸리고 주어진 쿼리의 수명 동안 가장 오래 실행되는 상태도 마찬가지입니다.
언급URL : https://stackoverflow.com/questions/10347193/what-does-it-mean-when-mysql-is-in-the-state-sending-data
반응형
'itsource' 카테고리의 다른 글
하위 행을 추가하거나 업데이트할 수 없음: 외부 키 제약 조건이 실패합니다. (0) | 2023.01.19 |
---|---|
PDO 준비됨 단일 쿼리에 여러 행을 삽입합니다. (0) | 2023.01.19 |
열이 다른 열에서 계산되었습니까? (0) | 2023.01.19 |
mysql LIKE는 어떻게 대소문자를 구분합니까? (0) | 2023.01.15 |
비동기 콜백함수에서 값을 반환하려면 어떻게 해야 합니까? (0) | 2023.01.15 |