我有很多使用PHP旧版驱动程序mssql的组件。我希望切换到微软的新版驱动程序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