Php redbeanppslow R::exportAll()

Php redbeanppslow R::exportAll(),php,postgresql,performance,redbean,Php,Postgresql,Performance,Redbean,我正在使用RedBeanPHP连接到Postgres数据库,但对于其他简单的查询,我的查询速度很慢。这似乎与红豆的exportAll()有关。我正在访问类似于RedBean的示例: $books = R::findAll( 'book' ); $beans= R::exportAll( $books ); 将查询直接用于: $rows = R::getAll($sql); $books = R::convertToBeans('books', $rows); $beans= R::export

我正在使用RedBeanPHP连接到Postgres数据库,但对于其他简单的查询,我的查询速度很慢。这似乎与红豆的
exportAll()
有关。我正在访问类似于RedBean的示例:

$books = R::findAll( 'book' );
$beans= R::exportAll( $books );
将查询直接用于:

$rows = R::getAll($sql);
$books = R::convertToBeans('books', $rows);
$beans= R::exportAll( $books );
对于一个只有66个表、有两个映射表(在RedBean中链接)的表,此查询大约需要1.25秒。此查询时间似乎非常慢,并且与R::exportAll()直接相关

版本:

  • RedbeanPp=4.3.3
  • PostgreSQL=9.6.2
  • PHP=7.0.15-0ubuntu0.16.04.4
  • OS=Ubuntu

有什么建议吗?

经过大量的研究,我发现了一个描述以下内容的简介:

dup()和exportAll()都需要查询 慢点。要加快进程,可以传递数据库架构:

R::$duplicationManager->setTables( $schema ); To obtain the schema use:

$schema = R::$duplicationManager->getSchema(); You can now use this schema to feed it to setTables(). R::duplicate() and
R::exportAll()都使用此架构

这正是我所经历的,但我无法访问
R::$replicationmanager->getSchema()
,因为$replicationmanager现在是一个私有变量()

幸运的是,API文档中还有一个“GetReplicationManager()”函数,因此非常成功:

$schema = R::getDuplicationManager()->getSchema();
R::getDuplicationManager()->setTables($schema);

这使我的时间减少到了约0.14秒,这更为合理。

此外,我在我的
R::setup()之后直接添加了此模式集
R::冻结(true)初始化。我知道我有点担心这些调用应该放在哪里,但是由于您的RedBean设置只发生一次,所以应该只需要设置一次模式。**除非您切换数据库**