我有很多组件使用 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)。
新驱动程序是由 Microsoft 直接制造的驱动程序(参见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