【问题标题】:Optimizing JQuery Datatables - working with large dataset while taking more than 30 minutes for processing in the middle layer (JAVA)优化 JQuery 数据表 - 处理大型数据集,中间层处理时间超过 30 分钟(JAVA)
【发布时间】:2013-07-19 18:25:39
【问题描述】:

我的应用程序从 UI 接收输入参数并执行一组 SQL 查询,这些查询将为 jquery 数据表返回数据。数据表中的每一行都需要根据输入参数处理多个 sql 查询。因此,当输入参数被输入以检索超过 1000 行时,您可以想象它会花费的处理时间。所以我只是想知道我们是否可以对它进行编程,当处理一行时,它是否可以在中间层继续处理其他行时返回到 UI?我正在使用 JQuery、Ajax 将输入参数发送到一个 servlet,该 servlet 调用 java 类来处理这些行并发送回 JSON 数据数组。任何投入将不胜感激。

【问题讨论】:

    标签: java jquery ajax servlets datatables


    【解决方案1】:

    您可以使用 DataTables server side processing 选项。

    ...如果您正在使用非常大的数据库,您可能 想考虑使用 DataTables 的服务器端选项 提供。基本上所有的分页、过滤、排序等 DataTables 确实可以移交给服务器(或任何其他数据) 来源 - 例如 Google Gears 或 Adob​​e Air!)和 DataTables 只是一个事件和显示模块。

    它只会获取少量记录并将其显示给用户,其余记录仅在需要时获取,例如当用户单击下一个/上一个时,

    【讨论】:

    • 能否提供一个示例代码sn-p?数据返回到 UI 后,如何获取其余记录?
    • @user2520416:基本上它会获取前 10 个结果,并在用户单击下一个时获取下一个 10,依此类推。当用户单击下一步时,记录开始并将索引发送到服务器,您需要在查询中使用它并返回所需的结果。通过提到的链接。它包含详细信息和代码 sn-p。
    • 它不是一个直接的 sql 提取。根据输入参数,一旦我从数据库中获取数据,然后对其进行处理并创建对象,然后将其转换为 JSON 对象。创建一行数据需要至少 4 个 sql 提取查询,然后处理提取的数据以创建一行数据。所以我仍然不确定在这种情况下服务器端处理将如何帮助我。
    • @user2520416:使用开始和结束索引,您将 SQL 限制为很少的记录。获取 10 条记录将比获取需要 30 分钟的数据更有效。此外,您应该重新检查您的设计,因为 30 分钟远远超过平均水平
    【解决方案2】:

    数据库编程的规则之一是在服务器上做所有可能的事情,而不是将数据发送到应用程序以在那里处理并返回。尝试将您的整个应用程序仅表达为一组 SQL 语句。

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 2012-09-05
      • 2023-04-02
      • 2017-03-06
      • 2012-11-27
      • 2016-12-30
      • 2022-01-06
      相关资源
      最近更新 更多