2

如果我们有一个大约 1000-2000 个元素的数组,以及一个大约 1000-2000 个(可以增加)的 mysql 表。我们必须找到表格内容是否在数组中。

哪种方法更好?

  1. 从数组中获取元素并运行简单的 mysql 查询,例如SELECT *...... WHERE.....(运行 1-2k sql 查询)
  2. 获取存储在 mysql 中的其他数组中的表,并与其他元素检查它的元素。即嵌套的for循环类型。(运行 1 个 sql 查询,然后进行 1-2k 条件检查)
4

2 回答 2

0

与内置的 dom 解析器 DOMDocument 和 DOMXPath 相比,使用 html 简单的 dom 解析器抓取数据很慢。

搜索具有 1000 多个元素的大型 php 数组会比查询数据库要慢。

将php数组批量插入db并在sql中查询可能会更有效。批量插入需要考虑诸如表类型(MyISAM|InnoDB 等)、禁用键、大量索引等等等等。

最后,您需要进行基准测试。

于 2013-09-28T12:58:16.053 回答
0

显而易见的答案是:试试看。

几乎显而易见的答案是:在 php.ini 中进行查询通常比遍历数组更快。由于开销较小,一个查询比多个查询快得多。

这就是我要开始的地方:

SELECT * FROM table WHERE something IS IN ('a1', 'a2', ..., 'a1000')
于 2013-09-28T12:24:57.753 回答