서버에서 처리하는 데 최대 30 분이 걸리는 보고서를 개선하는 방법에 대한 아이디어를 찾고 있는데, 현재 장고와 MySQL을 사용하고 있지만 언어 나 SQL 데이터베이스를 변경해야하는 솔루션이 있다면 그걸 열어.보고서 처리 시간을 향상시키는 방법 (Django/MySQL)?
여러 개의 Excel 파일을 읽고 해당 파일의 모든 행을 12K에서 15K 개의 레코드 범위의 테이블 (보고서 테이블)에 삽입하면 테이블에 약 50 개의 열이 있습니다. 이 부분은 그렇게 많은 시간을 소비하지 않습니다.
난 내가 이런 걸 가지고 종료 있도록 비즈니스 로직의 여러 단계를 적용하기 시작 보고서 테이블의 모든 레코드가 있으면 :
def create_report():
business_logic_1()
business_logic_2()
business_logic_3()
business_logic_4()
business_logic_X의 각 기능이 매우 비슷한 무언가를, 그것은 ReportModel.objects.all()
을 실행하여 시작한 다음 날짜, 수량 등의 확인과 같은 여러 계산을 적용하고 레코드를 업데이트합니다. 12K 레코드 테이블이기 때문에 전체 보고서를 신속하게 추가하기 시작합니다.
여러 함수를 별도로 처리하는 이유는 첫 번째 함수의 논리가 완료되어 다음 함수의 논리가 작동해야하기 때문입니다 (예 : 첫 번째 함수는 모든 관련 레코드를 찾습니다.
가장 먼저 최적화 할 수있는 것은 어떻게 든 각 함수에서 호출하는 대신 objects.all()을 캐싱하는 것이지만 전달 방법은 확실하지 않습니다. 레코드를 저장하지 않고 다음 함수를 호출하십시오.
함수의 저장 메소드에서 update_fields를 사용하여 보고서를 조금 최적화하고 시간을 절약 해줍니다.
제 질문은 이런 종류의 문제에 대한 더 나은 접근 방법이 있습니까? Django/MySQL은 이것에 적합한 스택인가?
관련 SQL을 보겠습니다. –