mysql 기간 및 가져 오기 시간


87

MySQL Workbench를 사용하고 있습니다. 쿼리가 실행될 때 기간과 가져 오기 시간의 차이는 무엇입니까?

또한 MySQL에서 마이크로 초 옵션을 활성화 할 수있는 방법이 있습니까?


이상한 현상금. 모든 답이 맞지만 믿지 않습니까? 여기여기 mysql 포럼에서 Oracle에서 일하는 Mike Lischke의 정확한 답변이 있습니다. 충분히 신뢰할 수 있습니까?
Hugo Delsing 2014 년

답변:


162

가져 오기 시간 -가져온 결과를 전송하는 데 걸리는 시간을 측정하며 이는 쿼리 실행과 관련이 없습니다. 가져 오기 시간은 네트워크 연결에 따라 다르므로 쿼리 최적화와 관련이 없으므로 SQL 쿼리 디버깅 / 최적화 옵션으로 간주하지 않습니다. 가져 오기 시간에 병목 현상이 발생하면 네트워킹 문제가있을 가능성이 높습니다.

참고 : 가져 오기 시간은 각 쿼리 실행에 따라 다를 수 있습니다.

지속 시간 -쿼리를 실행해야하는 시간입니다. SQL 쿼리의 성능을 최적화 할 때 최소화해야합니다.

참고


5
최적화 목적의 경우 결과가 캐시의 영향을받지 않도록하려면 옵션이 query_cache_type이어야 OFF합니다. stackoverflow.com/questions/181894/…
dellasavia

6
기간 이 일반적으로 최적화하려는 값 이라는 데 동의하지만 쿼리 효율성과 직접 관련이 있기 때문에 비정상적으로 높은 가져 오기 시간은 중요한 논리 오류 및 / 또는 비 효율성을 지적 할 수도 있습니다. 예를 들어, 클라이언트가 캐싱해야하는 각 쿼리와 함께 많은 양의 텍스트를 전송할 수 있습니다. 또는 10 개만 예상했을 때 10 만 개의 행을 반환 할 수도 있습니다.
GrandOpener

1
좋은 점 @GrandOpener-또는 정말로 필요한 모든 것이 행 ID 일 때 select (*)를 수행 할 수 있습니다.
앤드류 로리엔

MySQL에서 프로파일 러를 켜고 쿼리를 실행했습니다. 그런 다음 Workbench와 프로파일 러 출력을 모두 조사했습니다. Workbench에서보고하는 기간은 0.373이지만 프로파일 러의 총 기간은 거의 0.01에 도달하지 않습니다. Workbench의 Duration 출력이 쿼리 실행을 위해 MySQL에서 소비 한 총 시간이 아님을 의미합니까?
Meglio

이것은 옳지 않은 것 같습니다. 동일한 행 (15300)을 반환하는 두 개의 쿼리가 있지만 통계는 항상 다릅니다. 하나는 지속 시간 14,443 초 / 가져 오기 1111,810 초 및 나머지 443,986 초 지속 / 0,0089 초 가져 오기가 매번 걸립니다. 왜 그런 겁니까?
Shahid

16

Duration은 쿼리를 실행하는 데 필요한 시간을 나타내고 fetch는 결과 집합을 읽는 데 필요한 시간 (데이터 검색)을 나타냅니다.

마이크로 초 옵션에 대해 잘 모르겠습니다. 이것이 최적화에 관한 것이라면 기억하십시오- "조기 최적화는 모든 악의 근원입니다"


1

마이크로 초에 대해서는 기본 설정 메뉴에서 활성화 해보십시오. 이전에 지속 시간과 가져 오기 시간에 대한 질문도 받았습니다. 이제 지속 시간이 쿼리의 실행 시간이고 가져 오기가 결과를 얻고 원하는 곳으로 보내십시오. 예를 들어 지속 시간이 0.078 인 쿼리를 받았지만 데이터를 내 웹 사이트로 다시 보내는 데 60 초가 걸립니다.


1

실행 시간은 쿼리를 준비하고 쿼리를 실행하는 데 걸린 시간이고 가져 오기 시간은 행 결과를 가져 오는 데 걸린 시간입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.