【问题标题】:solution for creating "temporary" sortable db table/redis value创建“临时”可排序数据库表/redis 值的解决方案
【发布时间】:2014-02-09 22:26:06
【问题描述】:

我遇到了一种情况,我正在提取一个需要在 php 端进行后处理以进行排序和过滤的大数据集(不能全部在 sql 中完成)。当用户实际开始对数据进行排序或过滤时,这会变得非常慢,因为我们需要在每个后续请求上运行我们讨厌的 sql 和后处理逻辑。为了论证起见,我们只说 sql 和后处理是 100% 需要的。我正在考虑做的是使用第一次运行的数据创建一个“临时表”(或类似的东西),然后查询临时表以获取所有连续的排序/过滤器。我想知道人们的想法可能与这种情况有关。我不认为严格的 mysql 临时表会起作用,因为当连接断开并且我们没有使用持久连接时,这些表会被删除。我查看了redis,但看起来我无法对一组对象进行所需的排序/过滤类型(在可能是数字、字符串等的特定键上对关联数组进行排序)。有人对这种情况的潜在解决方案有任何建议吗?

我用的是mysql、php、galera集群

【问题讨论】:

    标签: php mysql sorting dataset filtering


    【解决方案1】:

    只是 CREATE TABLE 带有一个“临时”名称,而不是字面上的 CREATE TEMPORARY TABLE

    如果您将它们命名为__tmp_x,那么它们的含义应该很明显,并且以后很容易清理它们。

    不过,您所描述的内容听起来像是 data warehouse 的用例。一个故意复制的数据库副本,您可以随心所欲地随意使用,而不会影响生产。您可以根据需要从那里导出。

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 2022-09-08
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      相关资源
      最近更新 更多