2009-10-16 4 views
0

mysql 쿼리를 최적화하고 성능을 향상시키려는 중 어떤 유형의 응답 시간을 목표로해야하는지 잘 모르겠습니다. 분명히 낮추면 좋지만, 일반적으로 소비자 사이트에 대해 '느린'쿼리는 무엇을 목표로합니까?대상 mysql 쿼리 응답 시간

내 쿼리는 현재 0.00에서 0.70 초 사이에서 실행됩니다.

나는 0.00이 꽤 좋다고 가정하지만, 0.70 초는 얼마입니까? 나는 그 성능 향상을 찾고 있어야한다고 생각하니? 그렇다면 보통 무엇을 목표로합니까?

-----

내 쿼리

1- 사이에 조인 된 테이블에있는 난 정말 당신이 무엇을 &에 관심이 있지만 (귀하의 질문에 대답하기 위해 내 쿼리 ----에 대해 좀 더 많은 정보 3 백만 행 (때로는 더 많음) 4GB의 RAM과 SATA 드라이브가있는 동일한 상자에서 쿼리를 실행합니다. 이 상자는 6 개의 서로 다른 데이터베이스 중 2 개가 정기적으로 쿼리되고 하나는 정기적으로 업데이트됩니다. 시간 나는 거의 쓰지 않는 '읽기'데이터베이스를 제공합니다.

웹 요청의 경우 1 & 3 쿼리 (하지만 성능을 위해 memcache를 사용하여 데이터를 캐시합니다).

내가 준 시간은 명령 행 터미널에서 머신으로의 mysql 응답에서 나왔다. (그래서 실제로는 런타임이라고 가정한다.)

쿼리에는 쿼리에 따라 4 & 7 사이의 많은 조인이 있습니다.

+0

추가 정보를 바탕으로 수백만 행에 대한 쿼리가 700ms로 나쁘지 않습니다. –

+0

Randolf, 초심자로서, 내가 무엇을 목표로해야하는지, 그리고 무엇이 '최적화 된'것으로 간주 될지에 대한 이해를 얻는 것은 정말로 어렵습니다. 오늘 대부분의 시간을 1.1 초에서 700ms로 줄이는 방법을 알아 냈습니다. 내가 더 잘할 수 있는지 잘 모르겠다. – pedalpete

답변

1

다릅니다. DB와 다른 컴퓨터 또는 다른 컴퓨터에있는 경우에 따라 다릅니다. 또한 어떤 종류의 쿼리, 얼마나 많은 조인, 얼마나 많은 행, 데이터를 가져 오기 위해 인덱스를 사용합니까, 그래서 좋은 대답은 없습니다 : "쿼리는 오래 걸릴 것입니다."

2 대의 컴퓨터 사이에서 복잡한 쿼리가 실행되고 있는데 780과 850ms 사이가 걸리므로 아무 것도 의미하지 않습니다. (아마도 같은 컴퓨터에서 더 짧아 질 것입니다 ..., 끝났습니다 ...) 인터넷 연결 - 더 긴 요법 ...)

1

실제로 얼마나 많은 쿼리를 페이지에서 실행하고 어떤 허용 가능한 응답 시간이 응용 프로그램에 해당하는지에 따라 다릅니다.

데이터 마이닝 응용 프로그램의 경우 100 초 쿼리가 적합 할 수 있지만 웹 응용 프로그램의 경우 2 초 쿼리는 적합하지 않을 수 있습니다.

웹 응용 프로그램에서 작업 할 때 페이지 아래쪽에 쿼리와 실행 시간을 출력하는 디버깅 기능이 있습니다. 0.5-1 초가 노란색으로 표시되고 높은 값은 빨간색으로 표시됩니다. 빠른 최적화를 위해 출력물을 얻기 위해 클릭 할 수있는 링크가 있습니다.

물론 수십 개의 쿼리를 각각 0.3 초씩 실행하는 웹 페이지가있는 경우 문제가 발생합니다.

쿼리에 대한 설명을 잘 읽었 으면 쿼리를 얼마나 잘 최적화했는지 알 수 있습니다. 적색 플래그는 임시 테이블과 인덱스 부족과 같은 것입니다. 절대 시간에 이르기까지, 나는 '빠름'이 무엇인지에 대해 굳건하고 빠른 규칙을 찾는 데 어려움을 겪을 것이라고 생각한다.

1

다릅니다.일반적으로 쿼리가 50,000 개 미만인 작은 쿼리의 경우 < 150-200ms가 필요하지만 하드웨어 및 환경에 따라 다릅니다.

예를 들어, 700ms를 언급합니다. 쿼리는 무엇을하고 있습니까? 상자에 얼마나 많은 RAM이 있습니까? 어떤 디스크를 사용하고 있습니까? 이것들은 모두 결과에 영향을 미친다.