【问题标题】:Performing large queries on Array or DB in php? [closed]在 php 中对 Array 或 DB 执行大型查询? [关闭]
【发布时间】:2015-08-15 03:04:38
【问题描述】:

假设我有一个包含 10000 个用户的数组,对于每个用户,我需要存储他们最近执行的 100 个操作,以及该操作的时间。

这些数据也存储在 mysql 数据库中。 每秒钟,我需要检查 100 个用户操作,这意味着我需要为每分钟 100 个用户迭代所有这 100 个操作和操作时间。

那么哪个更快?每分钟查询数据库 100 次?或检查这些数组 100 次。

我在这里要问的是,一般来说,如果您处于需要每秒对大量数据(10000*200 = 2,000,000 条记录)执行大量数据库查询(每秒 100 次)的情况),您还可以将该数据存储在数组中并在这些数组中进行本地搜索,您会选择哪种方法?还假设在数组和数据库中的搜索都是优化的方法。 (例如它不是冒泡数组排序和搜索;))

【问题讨论】:

  • 我们不知道。您必须对其进行基准测试。例如运行 10,000 个 sql 查询的时间是多少?加载/解析/扫描数组10000次的时间?
  • 这是与this one 不同的问题吗?

标签: php mysql arrays performance optimization


【解决方案1】:

数据库连接将是算法中最昂贵的部分,因此请尽量减少每个连接的持续时间。

从数据库中取出并循环遍历数组。

除非您正在执行一个在数据库中非常快速的功能(即,按索引排序、分组等),否则您应该在 PHP 中执行此操作

【讨论】:

  • 那么每秒 100 次查询数据库不是那么糟糕吗?
  • @EBAG 对于轻量级查询,这应该不是问题,但是当您比较算法成本时,您希望尽可能节省资源
猜你喜欢
  • 2016-07-15
  • 2013-04-13
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
相关资源
最近更新 更多