각 테넌트에 자체 MySQL 데이터베이스가 있는 SaaS 솔루션이 있습니다. 이제 이 SaaS 시스템을 위한 대시보드를 디자인하고 있는데 여기에는 몇 가지 분석 차트가 필요합니다. 차트에 필요한 데이터를 얻기 위해 각 테넌트의 거래 데이터를 데이터베이스에서 실시간으로 쿼리할 수 있습니다. 아직까지는 데이터량이 그리 크지 않기 때문에 성능 저하 없이 업데이트된 그래프를 얻을 수 있습니다. 하지만 데이터 양이 계속해서 증가할 것이기 때문에 각 회사별로 분석 데이터와 거래 데이터를 분리하기로 결정했습니다. 백그라운드에서 차트의 분석 데이터를 가져와서 저장/캐시하고 정기적으로 업데이트할 예정입니다. 내 질문은:
P粉7594512552024-02-27 16:34:32
"팩트" 테이블의 수백만 행에 들어가는 대신 요약 테이블을 구축 및 유지 관리한 다음 여기에서 데이터를 가져옵니다. 10배 더 빠르게 실행될 수 있습니다.
추가 테이블로 인해 코드 변경이 필요하지만 그만한 가치가 있을 수 있습니다.
즉, 데이터 세트가 X보다 커지면 요약 테이블이 가장 좋은 솔루션입니다. 캐싱은 도움이 되지 않습니다. 하드웨어로는 충분하지 않습니다. JSON은 방해가 될 뿐입니다.
1년치의 데이터 포인트(초당 1개)를 기반으로 1년치의 그래프를 구성하는 것은 느리고 낭비입니다. 일일 소계를 기반으로 1년 차트를 구성하는 것이 훨씬 더 합리적입니다.