php读取文件并从mysql读取数据哪一个更快

时间:2016-08-25 05:49:59

标签: php mysql

这是一个真正的PHP面试问题。我知道答案不仅仅是哪一个更快。我们可以在很多方面回答这个问题。有人可以给我一些建议吗?

3 个答案:

答案 0 :(得分:2)

文件:

  • 阅读文件:快速
  • 预测格式/代码页:缓慢,艰苦,容易出错
  • 文件权限管理
  • 无法进行多次写入访问
  • 需要锁定机制策略
  • 解析文件:比较快。取决于数据复杂性
  • 文件在目录中查找包含许多其他文件(1000+)的文件:非常慢,因为操作系统将遍历目录中的文件列表以通过二进制搜索找到您请求的文件(如果您很幸运)
  • 在其他人写作时不可能阅读
  • 线程分叉问题
  • 如果存储在文本中的大文件大小
  • 简而言之:只使用配置文件等静态数据文件。从不用于动态数据

数据库:

  • 更好地管理上述所有
  • 小型存储
  • 快速查找引擎
  • 易于结合相关事实
  • 易于与其他计算机/程序共享访问
  • 内置的回滚机制。
  • 不要用于保持静态的配置。

答案 1 :(得分:1)

这是一个没有正确答案的面试问题的例子。可以针对这两种情况做出一个案例。

对于文件,您可能会说它们可以快速加载,有很多内核优化可以从磁盘中获取它们并将它们提供给用户进程,甚至可以通过类似的方式将它们直接从磁盘发送到套接字。 sendfile。那是真的。

然后对于数据库,您可以说经常访问的数据存储在内存中,因此没有I / O往返磁盘,这可能会更快,特别是如果您使用次优结构比较文件的读取部分数据库中的记录。这也是一个算法问题。

所以它实际上取决于涉及哪种类型的文件和哪种读/写访问模式。要说这些事情中的任何一个更快就会错过问题的重点。

答案 2 :(得分:0)

读一个文件=快。

读取很多/大文件=慢。

从数据库中读取单个小条目=浪费I / O.

组合数据库中的许多条目=比文件访问更快。