동일한 트랜잭션 데이터베이스에서 보고 데이터 캐싱과 데이터 웨어하우스 사용 비교
P粉511749537
P粉511749537 2024-02-26 19:20:23
0
1
375

각 테넌트에 자체 MySQL 데이터베이스가 있는 SaaS 솔루션이 있습니다. 이제 이 SaaS 시스템을 위한 대시보드를 디자인하고 있는데 여기에는 몇 가지 분석 차트가 필요합니다. 차트에 필요한 데이터를 얻기 위해 각 테넌트의 거래 데이터를 데이터베이스에서 실시간으로 쿼리할 수 있습니다. 아직까지는 데이터량이 그리 크지 않기 때문에 성능 저하 없이 업데이트된 그래프를 얻을 수 있습니다. 하지만 데이터 양이 계속해서 증가할 것이기 때문에 각 회사별로 분석 데이터와 거래 데이터를 분리하기로 결정했습니다. 백그라운드에서 차트의 분석 데이터를 가져와서 저장/캐시하고 정기적으로 업데이트할 예정입니다. 내 질문은:

  • 처음부터 데이터 웨어하우징 및 데이터 모델링을 포함해야 하는지, 아니면 API 생성 차트의 분석 데이터를 각 테넌트에 대한 새 테이블의 JSON 열에 캐시해야 하는지 결정하기 전에 고려해야 할 좋은 질문이나 요소는 무엇입니까? MYSQL 데이터베이스.

P粉511749537
P粉511749537

모든 응답(1)
P粉759451255

"팩트" 테이블의 수백만 행에 들어가는 대신 요약 테이블을 구축 및 유지 관리한 다음 여기에서 데이터를 가져옵니다. 10배 더 빠르게 실행될 수 있습니다.

추가 테이블로 인해 코드 변경이 필요하지만 그만한 가치가 있을 수 있습니다.

요약표

즉, 데이터 세트가 X보다 커지면 요약 테이블이 가장 좋은 솔루션입니다. 캐싱은 도움이 되지 않습니다. 하드웨어로는 충분하지 않습니다. JSON은 방해가 될 뿐입니다.

1년치의 데이터 포인트(초당 1개)를 기반으로 1년치의 그래프를 구성하는 것은 느리고 낭비입니다. 일일 소계를 기반으로 1년 차트를 구성하는 것이 훨씬 더 합리적입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿