为可视化准备百万行数据
Posted
技术标签:
【中文标题】为可视化准备百万行数据【英文标题】:Preparing million rows data for visulation 【发布时间】:2015-03-28 09:09:30 【问题描述】:我们希望开发一个基于 Web 的应用程序,该应用程序能够使用数百万行数据生成报告,并且它每秒都在增长。我们使用的是mysql数据库。
我们希望使用这些数据生成报告。这就是为什么我们需要过滤数据,对其进行一些计算并将其用作图表,表格等...构建图表,表格是可以的,我正在询问如何导出数据。
获取报表数据的第一种方法是使用原生 SQL 查询; 但是,每个报表的过滤和计算都很慢,所以我们将有超过 100 个用户可以导出报表。
第二种方法是使用视图; 我们可以为自定义计算和视图构建视图,这是一种处理计算的简单方法,但查询速度很慢。所以过滤会减慢我们的速度。
我不知道我是否可以使用外部工具来实时过滤和计算数据。生成报告数据的最佳和快速方法是什么。
【问题讨论】:
您需要一个适当的服务器,该服务器也配置得很好,以便您使用它的资源 - 不要使用默认的 MySQL 配置。您的数据方案将在这里成为一个重要因素。报告一旦完成,就应该被缓存,并在新数据进入时更新缓存 - 这称为物化视图或物化视图。 MySQL 的 MariaDB fork 有一个叫做 Flexviews 的东西,它随着数据的进入而增量更新,它非常高效。基本上,您可以将缓存与最佳服务器和数据架构配置相结合。 对于一百万(正确索引)行,默认设置应该没问题 【参考方案1】:数据库级别的过滤应该比其他方式更快。由于我没有太多关于您的数据库、表和查询的信息,您可以尝试修改表架构、在过滤列上添加键、使用解释查询、更改 where 子句中过滤列的顺序、仅提取必要的列等等将尽可能少的数据从后端传输到前端等。在客户端进行任何额外的数据操作。 希望这会有所帮助。
【讨论】:
以上是关于为可视化准备百万行数据的主要内容,如果未能解决你的问题,请参考以下文章