
Aurora의 쿼리로 읽은 바이트 수를 얻을 수 있습니까? 쿼리 수준이 아닌 경우 테이블 수준에서 사용할 수 있습니까?
성능 인사이트와 Performance_schema 테이블을 살펴봤지만 모두 물리적 바이트 양이 아닌 ROWS_SCANNED에 대한 데이터만 있는 것 같습니다. 성능 통찰력의 I/O 지표도 테이블이 아닌 데이터베이스 수준에 있는 것으로 보입니다.
답변1
InnoDB 전체에 대해서는 다음을 참조하세요.SHOW STATUS LIKE 'Innodb_%';
메트릭이 데이터베이스나 테이블 수준이 아닌 전역적인 이유가 있습니다. buffer_pool은 캐시입니다. 각 쿼리는 다른 모든 쿼리에 의존하고 이를 방해합니다. 적어도 I/O 수준에서는요.
"스캔된 바이트 수"가 관련되는지 여부에 대해 이의를 제기합니다. "만진 행"이 더 유용한 것 같습니다. I/O 다음으로 행에 액세스하는 것은 쿼리를 수행하는 데 가장 비용이 많이 드는 작업입니다.
불행하게도 Innodb 상태 값은 집계 통계이므로 단일 명령문에 대한 통계를 얻으려면 조용한 시간에 하나의 쿼리를 실행해야 합니다.
쿼리 전후에 이 작업을 수행한 다음 차이점을 확인하십시오.
SHOW STATUS LIKE 'Innodb%read%';
주의: 일부는 행 개수, 일부는 블록 개수, 일부는 바이트 개수입니다.
"디스크에서 읽은 바이트"와 같은 항목은 차단으로 인해 16KB의 배수로 나타납니다. 나는 "바이트 스캔"을 감시하는 것이 없다고 생각합니다.
데이터를 얻을 수 있다면 데이터로 무엇을 하고 싶은지 자세히 설명해 주세요. 좀 더 집중적인 답변을 드릴 수 있을 것 같습니다.
SHOW SESSION STATUS LIKE 'Handler%';
단일 쿼리에 대해 얼마나 많은 작업이 발생하는지 해독하는 데 매우 유용하다는 것을 알았습니다 . 그리고 이는 세션별(전역은 물론)입니다.
"쓰기" 메트릭은 일반적으로 복잡한 SELECTs
.