正在搜索PHP数组比从MySQL搜索/检索更快

时间:2009-11-10 05:56:03

标签: php mysql

很想知道哪个更快 - 如果我有一个包含25000个键值对的数组和一个相同信息的MySQL数据库,那么搜索速度会更快?

非常感谢大家!

7 个答案:

答案 0 :(得分:5)

回答这个问题的最佳方法是执行基准测试。

答案 1 :(得分:1)

虽然您应该自己尝试一下,但我会假设有一个正确的索引,并得出结论,DB可以比PHP更快地完成它,因为它的构建就是全部。

但是,它可能归结为网络延迟,解析SQL与PHP的速度,或DB负载和内存使用百分比。

答案 2 :(得分:1)

要记住的一件事:如果您的搜索在数据库上占用大量CPU,那么即使它没有那么快,也可能值得在PHP中进行。在扩展时,通常比数据库服务器更容易添加Web服务器。

答案 3 :(得分:0)

测试它 - 分析一些简单的东西应该是微不足道的。

另外,请记住,数据库旨在处理这类任务,因此他们自然会擅长这一任务。即使是天真的二进制搜索也只有17个比较,所以25k元素不是很多。真正的问题是分类,但在过去的60多年里,它已被征服致死。

答案 4 :(得分:0)

这取决于。在mysql中,您可以使用索引,这将提高速度,但使用php,您不需要通过网络发送信息(如果在另一台服务器上的mysql数据库)。

答案 5 :(得分:0)

我的第一个想法是使用数组进行更快的搜索。但是,另一方面,它实际上取决于几个因素:

  1. 您的databasa表是如何设计的(它是否正确使用索引等)
  2. 您的查询是如何构建的
  3. 数据库通常针对此类搜索进行了优化。
  4. 您在阵列上进行的搜索类型是什么?您可以执行多种类型的搜索。最慢的是直接搜索,其中您通过每行检查值,更快的方法是二进制搜索。
  5. 我假设您正在比较直接在数据库上执行的select语句和在php中的数组搜索。不是

答案 6 :(得分:0)

构建MySQL是为了有效地对大量数据进行排序和搜索,例如这样。当您搜索密钥时尤其如此,因为MySQL会对表中的主键进行索引。