【问题标题】:Large Analytics Database Responsive Retrieval (MYSQL)大型分析数据库响应式检索 (MYSQL)
【发布时间】:2010-12-22 20:29:04
【问题描述】:

我想为网络创建一个“谷歌分析”类型的应用程序——即一个基于网络的工具来为我的数据库做一些报告和图表。问题是数据库很大,所以我不能实时进行查询,因为查询时间太长而且工具没有响应。

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

谢谢!

【问题讨论】:

  • 定义“巨大”。我们在谈论多少条记录?我很惊讶数据库在大量记录上的表现如何,经过适当的优化,以及 SO 的人能在这方面提供多少帮助。
  • 每张表数亿条记录~3亿条,需要连接5到6张这样的表。

标签: mysql reporting analytics data-retrieval


【解决方案1】:

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

高级策略列表包括:

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

一般来说,动态报告胜过静态报告 - 因此,如果您需要强大的报告,我会尝试将数据复制到适当的模型中,使用聚合,可能会更改数据库以获得良好的优化器和适当的功能,而不是批量运行报告。

【讨论】:

    猜你喜欢
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多