Php redbeanppslow R::exportAll()
我正在使用RedBeanPHP连接到Postgres数据库,但对于其他简单的查询,我的查询速度很慢。这似乎与红豆的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
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设置只发生一次,所以应该只需要设置一次模式。**除非您切换数据库**