itsource

MySQL이 "데이터 전송 중" 상태이면 어떤 의미입니까?

mycopycode 2023. 1. 19. 07:07
반응형

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

반응형