【问题标题】:What is the fastest way to preprocess data?预处理数据的最快方法是什么?
【发布时间】:2013-07-01 10:41:19
【问题描述】:

我有一个包含大量股票数据的 SQL 表,我打算使用 Highstock 来绘制图表。我还需要能够使用 AJAX 向图表添加数据。

最初我正在考虑使用 JSON,但我发现 Highstock 支持 prepocessing from a database 。要将数据转换为 JSON 或 CSV 格式,我必须从数据库中查询,然后使用 PHP/Javascript 解析数据,这可能是多余的。

只是想知道预处理数据最有效和优化的方法是什么?这可能是一个普遍的问题,但就我而言,我使用的是 Highstock。

我还想知道使用 JSON 或 CSV 等数据格式而不是 SQL 来动态解析数据是否会更快?考虑一个图表加载的场景,其中包含 1000 个点,但您可以调整图表的大小以显示最多 100000 个点。我认为从 JSON 或 CSV 读取数据可能比使用 AJAX 和查询 SQL 更快,对吗?

【问题讨论】:

  • Highstock 图表似乎需要预先显示的所有数据。因此,放大和缩小图表要么意味着预先获取所有数据,要么执行单独的加载并制作不同的图表。我将“预处理”解释为“为 Highstock 的消费格式化数据”。如果您的数据库有一个提供 JSON 的服务层,请使用它。否则,直接从执行 SQL 查询返回的结果集中格式化数据。通常,将其交给 Highstock 所需的格式越少,预处理就越快。
  • 我通常会说任何繁重的基于集合的数据(例如从数据库中提取的数据)都应该在 SQL 服务器端完成。它旨在执行此类处理。这实际上取决于您在预处理中所做的工作。
  • 同意 wergild 的观点。 SQL 服务器上的计算,以及使用 JS 处理或 AJAX 的天气取决于您必须进行多少处理。如果很多,服务器端将是最快的,因为浏览器的资源有限。您可能还需要考虑使用 NoSQL 解决方案来减少对象/格式转换。

标签: sql json csv highcharts highstock


【解决方案1】:

您指向Preprocessing data from a database 的链接似乎很简单。也许我不了解您的数据在数据库中的情况。在将数据发送到 Highcharts 之前,您是否必须进行摘要或其他繁重的处理?

如果是这种情况,您可能需要构建一个汇总表,在其中执行所有计算。那么这只是一个简单的查询。您的图表将比等待数据库或服务层执行工作快得多。

为了获得更快的性能,您可以将预先计算的数据存储在内存数据库中,例如 MemSQL。您不必等待数据库和 Web 服务器之间的网络流量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多