我有很多组件使用来自 PHP 的旧驱动程序 mssql。 我想切换到 Microsoft 的新驱动程序 SQLSRV,但我的查询速度很慢。
我有许多处理 +400 000 行的进程。
这是我对 40 000 行 的测试:
- testOldDriver_mssql = 行 40000:1 秒
- testNewDriver_nonPDO = 第 40000 行:7 秒
- testNewDriver_PDO = 行 40000:4 秒
这是我最大的进程(+480 000 行):
- testOldDriver_mssql = 行 484856:27 秒
- testNewDriver_nonPDO = 行 484856:120 秒
- testNewDriver_PDO = 行 484856:47 秒
- testPDO_ODBC = 行 484856:24 秒
新驱动程序肯定更慢吗?还是我遗漏了什么?
编辑 1:
“旧驱动程序”是指已弃用的 MSSQL 库(请参阅 php.net/mssql)。
新的驱动是微软直接做的(见http://www.microsoft.com/en-us/download/details.aspx?id=20098)
我的查询是
SELECT * FROM myTable
WHERE pdvSaisie IN
(SELECT number FROM pdvs WHERE nom LIKE 'ZUEE %')
并使用直接的 query()
(没有准备,如果我使用准备好的语句,结果相同)。
编辑 2:
添加了 PDO/ODBC 测试。惊喜,它更快:o
最佳答案
解决方法:使用 PDO/ODBC。
关于PHP - 为什么新的 SQLSRV 驱动程序比旧的 mssql 驱动程序慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11825949/