首页 > 解决方案 > 将 PHP 与 Firebase 数据库一起使用很慢

问题描述

想问一下是否有人使用这个库一起使用了 PHP 和 Firebase: https ://firebase-php.readthedocs.io/en/latest/

出于某种原因,firebase 中的每一个键都需要很长时间才能退出。每个项目大约 700-800ms。10 项大约 8 秒等。为什么这么慢?

foreach ($data as $key => $value){
    $this->database->getReference()->getChild($this->dbname)->getChild($userID)->getValue();
}

如果对象中有 100 个项目,则此循环可能会一直持续下去。为什么它这么慢,我该如何解决?

标签: phpfirebasefirebase-realtime-database

解决方案


以这种方式从 Firebase 读取数据,这些是影响性能的主要因素:

  1. 连接到 Firebase 服务器所需的时间。
  2. Firebase 服务器从磁盘获取数据所需的时间。
  3. 您请求的数据返回到您的机器所需的时间。

每个项目总共显然需要 700 毫秒。没有什么神奇的开关可以让这个过程变得更快,你要么需要更少地从数据库中询问,要么需要更少的调用。

提高性能的最常见方法:

  • 请求更少的数据,这改进了#3(和#2)。当人们下载大量数据时,客户端的带宽通常是最大的限制因素。
  • 从更快的连接拨打电话,这改进了#3 和#1。
  • 想办法减少通话次数。当您使用其中一个 Firebase SDK 访问 Firebase 数据库时,这通常不是一个因素,因为它们可以通过单个连接对请求进行管道传输。但是 PHP 库是建立在 Firebase 的 REST API 之上的,每次调用可能会有更多的开销。

推荐阅读