【问题标题】:Preparing million rows data for visulation为可视化准备百万行数据
【发布时间】:2015-03-28 09:09:30
【问题描述】:

我们希望开发一个基于 Web 的应用程序,该应用程序能够使用数百万行数据生成报告,并且它每秒都在增长。我们使用的是Mysql数据库。

我们希望使用这些数据生成报告。这就是为什么我们需要过滤数据,对其进行一些计算并将其用作图表,表格等...构建图表,表格是可以的,我正在询问如何导出数据。

获取报表数据的第一种方法是使用原生 SQL 查询; 但是,每个报表的过滤和计算都很慢,所以我们将有超过 100 个用户可以导出报表。

第二种方法是使用视图; 我们可以为自定义计算和视图构建视图,这是一种处理计算的简单方法,但查询速度很慢。所以过滤会减慢我们的速度。

我不知道我是否可以使用外部工具来实时过滤和计算数据。生成报告数据的最佳和快速方法是什么。

【问题讨论】:

  • 您需要一个适当的服务器,该服务器也配置得很好,以便您使用它的资源 - 不要使用默认的 MySQL 配置。您的数据方案将在这里成为一个重要因素。报告一旦完成,就应该被缓存,并在新数据进入时更新缓存 - 这称为物化视图或物化视图。 MySQL 的 MariaDB fork 有一个叫做 Flexviews 的东西,它随着数据的进入而增量更新,它非常高效。基本上,您可以将缓存与最佳服务器和数据架构配置相结合。
  • 对于一百万(正确索引)行,默认设置应该没问题

标签: mysql database bigdata


【解决方案1】:

数据库级别的过滤应该比其他方式更快。由于我没有太多关于您的数据库、表和查询的信息,您可以尝试修改表架构、在过滤列上添加键、使用解释查询、更改 where 子句中过滤列的顺序、仅提取必要的列等等将尽可能少的数据从后端传输到前端等。在客户端进行任何额外的数据操作。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 2013-01-12
    • 2021-05-23
    • 1970-01-01
    相关资源
    最近更新 更多