페이지 로딩 속도에 문제가 있습니다.장고 최적화
이제 페이지로드에는 약 7 초가 걸리고 장고 처리는 2 ~ 3 초가 걸립니다.
분명히 비난하는 것은 페이지에 액세스 할 때 "장고 디버그 도구 모음"에 표시된 것처럼 아키텍처에 대한 지식이 부족하고 평균 50 개의 쿼리를 실행하지만 대부분의 쿼리는 "어제의 스냅 샷 (그룹) "또는"어제 이전에 일별 스냅 샷 (일별로 그룹화) "이 있으며 매번 업데이트 할 필요는 없습니다.
나는 메모리 캐싱을 사용하여 아이디어를 내고 있거나 준비 가능한 유형의 데이터를 위해 새 테이블을 만듭니다.
이런 종류의 문제에 대해 규칙이나 디자인 패턴이 있습니까?
샘플 쿼리 (나는 그들이 어제 데이터 또는 마지막 month`s 데이터에 때마다 쿼리 안 믿는)이 있습니다이 인터넷에 노출 될 수있는 생산 응용 프로그램의 경우
SELECT `sample_salestarget`.`id`, `sample_salestarget`.`country_id`, `sample_salestarget`.`year`, `sample_salestarget`.`month`, `sample_salestarget`.`sales` FROM `sample_salestarget` WHERE (`sample_salestarget`.`country_id` = "abc" AND `sample_salestarget`.`month` = 8 AND `sample_salestarget`.`year` = 2012)
SELECT `sample_dailysummary`.`id`, `sample_dailysummary`.`country_id`, `sample_dailysummary`.`date`, `sample_dailysummary`.`pv_day`, `sample_dailysummary`.`pv_week`, `sample_dailysummary`.`pv_month`, `sample_dailysummary`.`active_uu_day`, `sample_dailysummary`.`active_uu_week`, `sample_dailysummary`.`active_uu_month`, `sample_dailysummary`.`active_uu_7days`, `sample_dailysummary`.`active_uu_30days`, `sample_dailysummary`.`paid_uu_day`, `sample_dailysummary`.`paid_uu_week`, `sample_dailysummary`.`paid_uu_month`, `sample_dailysummary`.`sales_day`, `sample_dailysummary`.`sales_week`, `sample_dailysummary`.`sales_month`, `sample_dailysummary`.`register_uu_day`, `sample_dailysummary`.`register_uu_week`, `sample_dailysummary`.`register_uu_month`, `sample_dailysummary`.`pay_count_day`, `sample_dailysummary`.`pay_count_week`, `sample_dailysummary`.`pay_count_month`, `sample_dailysummary`.`total_user`, `sample_dailysummary`.`inv_access_uu`, `sample_dailysummary`.`inv_sender_uu`, `sample_dailysummary`.`inv_accepted_uu`, `sample_dailysummary`.`inv_send_count`, `sample_dailysummary`.`memo`, `sample_dailysummary`.`first_charge_uu` FROM `sample_dailysummary` WHERE `sample_dailysummary`.`date` = 2012-09-07 AND `sample_dailysummary`.`country_id` = "abc")
장고가 모든 검색어를 처리한다고 가정합니다. 'group by '은 꽤 느릴 수 있기 때문에, 일반적으로 –
은 약간의 코드를 보여줍니다. –
여러분을 도울 수있는 충분한 정보가 * 근처에 있습니다. 그러나 많은 사람들이 실수로 만들고 있다고 말할 수 있습니다. 디버그 툴바가 제시하는로드 시간은 다른 뷰 또는 동일한 뷰의 다른 반복과 관련된 컨텍스트에서만 관련이 있으며 페이지의 전반적인 실제 속도와 관련이없는 반복 * *입니다. 디버그 도구 모음은 처리 속도와 렌더링 속도를 크게 저하시킵니다. 디버그 툴바로로드하는 데 7 초가 걸리며 페이지가 없으면 1 초도 걸릴 수 있습니다. –