현재 crm 통계 기능을 작업 중인데, 사용자와 관련된 다양한 데이터를 저장하기 위해 관련 테이블을 생성해야 합니다.
예: 해당 날짜에 직원의 신규 고객 수를 계산합니다.
먼저 직원들의 일일 고객 수를 저장하기 위한 통계표를 구성했습니다.
그런 다음 직원이 고객을 추가하면 통계표의 해당 필드에 1을 추가합니다. 고객이 삭제되면 통계표의 해당 필드가 1 감소합니다.
이것은 1을 더하고 1을 빼는 작업을 트리거하고 swoole을 사용하여 이를 비동기적으로 실행합니다.
최근 이번주, 이번달, 이번분기, 올해 통계자료 집계 기능 추가가 필요해졌습니다.
[주간통계표], [월통계표], [분기통계표], [연간통계표]에 해당하는 [일일통계표] 4부를 복사했습니다.
이 5개 테이블의 데이터 구조는 유사합니다.
현재 질문은 다음과 같습니다.
1. 사용자의 일일 고객 수를 계산하기 위해 비동기 트리거링을 사용하는 이전 방법이 최적입니까? 다른 더 좋은 방법이 있나요?
2. 주간, 월간, 분기별, 연간 데이터를 계산할 때 [일일통계표]에서 계산하는 것이 좋을까요, 이 4개의 테이블을 직접 구축하는 것이 좋을까요, 아니면 비동기 트리거링을 사용하여 해당 데이터를 직접 저장하는 것이 좋을까요?
혹시 답변해주실 전문가 있으신가요? 정말 감사합니다
현재 crm 통계 기능을 작업 중인데, 사용자와 관련된 다양한 데이터를 저장하기 위해 관련 테이블을 생성해야 합니다.
예: 해당 날짜에 직원의 신규 고객 수를 계산합니다.
먼저 직원들의 일일 고객 수를 저장하기 위한 통계표를 구성했습니다.
그런 다음 직원이 고객을 추가하면 통계표의 해당 필드에 1을 추가합니다. 고객이 삭제되면 통계표의 해당 필드가 1 감소합니다.
이것은 1을 더하고 1을 빼는 작업을 트리거하고 swoole을 사용하여 이를 비동기적으로 실행합니다.
최근 이번주, 이번달, 이번분기, 올해 통계자료 집계 기능 추가가 필요해졌습니다.
[주간통계표], [월통계표], [분기통계표], [연간통계표]에 해당하는 [일일통계표] 4부를 복사했습니다.
이 5개 테이블의 데이터 구조는 유사합니다.
현재 질문은 다음과 같습니다.
1. 사용자의 일일 고객 수를 계산하기 위해 비동기 트리거링을 사용하는 이전 방법이 최적입니까? 다른 더 좋은 방법이 있나요?
2. 주간, 월간, 분기별, 연간 데이터를 계산할 때 [일일통계표]에서 계산하는 것이 좋을까요, 이 4개의 테이블을 직접 구축하는 것이 좋을까요, 아니면 비동기 트리거링을 사용하여 해당 데이터를 직접 저장하는 것이 좋을까요?
혹시 답변해주실 수 있는 전문가가 있으신가요? 정말 감사합니다
고객은 몇 명인가요? 100만 레벨 이하라면, 내가 하면 그냥 테이블에 보관하면 됩니다. 테이블에는 두 개의 필드가 있는데 하나는 created_at
이고 다른 하나는 deleted_at
이며 둘 다 날짜/시간 유형이며 이 두 필드가 인덱싱됩니다.
나중에 통계를 할 때 실시간으로 조회할 수 있는데, 속도가 100만 수준 이하로 매우 빠르고, 원하는 범위를 확인할 수 있습니다. 데이터가 아무리 많아도 캐시를 추가하면 성능 문제를 쉽게 해결할 수 있습니다. 이렇게 하려면 많은 테이블을 만드는 것이 너무 복잡하고 손실보다 이득이 더 큽니다