首页 文章

PHP PDOStatement :: fetchAll()缓慢执行请求

提问于
浏览
0

我有PHP应用程序我正在开发我需要使用MSSQL Server作为我的数据库源 . 作为应用程序的唯一开发人员,我可以根据我公司的要求,在数据库服务器之外选择我想要的技术 . 所以这就是问题所在 .

我在连接到MSSQL SQL Server 2014 SP2 CU1(IT控制资源)的Zend Server 9.0上运行PHP 7.0.6 . 我遇到的问题是,当我对表x执行查询时,数据库调用在3.62毫秒内完成(根据Zend Server) . 但是,PDOStatement :: fetchAll()平均需要15秒才能返回27k结果 . 我已经尝试了各种检索数据的连接方式,但似乎没有任何工作 .

有没有人有这样的问题,如果有的话,他们的解决方案是什么 . 我从这里使用MSSQL DB驱动程序:https://www.microsoft.com/en-us/download/details.aspx?id=20098 .

我的PDO连接设置如下:

$this->pdo = new PDO("sqlsrv:Server=".$this->host.";ConnectionPooling=0;Database=".$this->table
                          , $this->user
                          , $this->password
                          , array(PDO::ATTR_PERSISTENT => true)
                    );

任何帮助将不胜感激 . 谢谢!

1 回答

  • 0

    可能是查询不需要太长时间,但fetchAll构建一个27k结果的数组,需要一段时间来处理 . 您需要为此找到另一种方法,您可以对查询进行分页并在每页上显示一系列元素 . 这是一个如何执行此操作的教程 . Pagination with PHP and PDO

相关问题