大型分析数据库响应式检索(MYSQL)

时间:2009-12-03 14:37:54

标签: mysql reporting analytics data-retrieval

我想为网络创建一个“谷歌分析”类型的应用程序 - 即一个基于网络的工具,为我的数据库做一些报告和绘图。问题是数据库是巨大的,所以我不能实时查询,因为它们将花费太长时间,工具将无法响应。

我如何使用cron作业来帮助我?能够使我的图表响应的最佳方法是什么?我想我需要对一些数据库表进行反例化,但是如何更快地进行这些查询呢?我可以在另一个数据库表中存储哪些中间值以使其更快?

谢谢!

3 个答案:

答案 0 :(得分:3)

商业智能(BI)是一门非常成熟的学科 - 您可以在任何有关扩展数据库的书籍中找到问题的答案。数据仓库。

高级战术列表包括:

  • 分区(因为索引对大多数报告没什么帮助)
  • 汇总表(通常通过cron提交的批处理过程生成)
  • 你需要一个好的优化器(像mysql这样的数据库不需要 - 所以做出糟糕的加入决定)
  • 查询并行性(一些数据库只需将查询拆分为多个线程即可提供线性加速)
  • 星型模式 - 良好的数据模型至关重要以获得良好的性能

一般情况下,动态报告会打破静态报告 - 因此,如果您正在进行强大的报告,我只会尝试将数据复制到适当的模型中,使用聚合,可能会更改数据库以获得良好的优化程序和相应的功能而不是批量运行报告。

答案 1 :(得分:1)

解决此问题的一种简单方法是创建一系列摘要表以包含预聚合数据。这些可以使用crontab定期填充。

或者,可能值得查看类似http://mondrian.pentaho.org的内容。

答案 2 :(得分:0)

我会熟悉“明星模式”