我想创建一个'谷歌分析的类型应用程序的网页即一个基于网络的工具做一些报告和图形对我的数据库。问题是,该数据库是巨大的,所以我不能查询的实时间,因为他们会花太长时间和工具将是没有反应。

我如何可以使用一个计划的工作,以帮助我吗?什么是最好的方式能够让我的图表反应灵敏?我想我需要denomalize我的一些数据库的数据表,但是我怎么做这些查询更快?什么样的中间值我可以储存在另一个数据库表,以使它更快吗?

谢谢!

有帮助吗?

解决方案

业务情报(B)是一个相当成熟的纪律-你会找到问题的答案在任何一本书上扩展的数据库报告与数据仓库。

一个高级别名单的策略将包括:

  • 分区(因为索引的一点帮助对于大多数报告)
  • 摘要表(所产生的通常是通过批处理过程中提交通过cron)
  • 你需要一个良好的优化(一些数据库等mysql不-所以让穷人参加决定)
  • 查询并行(有些数据库将提供的线性加速刚刚通过的分裂您的查询到多线程)
  • 星-架构的一个良好的数据模型 至关重要的 好的性能

一般的动态报告的节拍的裤子脱静态的报告--所以,如果你强大的后报告,我只是尝试的数据复制到一个适当的模型中,使用的聚集体,有可能改变的数据库,以获得良好的优化和合适的特征,而不是运行报告中的批。

其他提示

接近一个简单的方法是创建一个选择简表的含有预聚合的数据。这些可以定期使用的crontab来填充。

另外,也可以是值得考虑的像 http://mondrian.pentaho.org

我将让自己熟悉了“星型模式”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top