Re: PDO fetch performance problems with many bindparameters
| From: | Christoph M. Becker | Date: | Fri, 28 Aug 2020 20:57:40 +0000 |
| Subject: | Re: PDO fetch performance problems with many bindparameters | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-111706@lists.php.net to get a copy of this message | ||
On 28.08.2020 at 20:36, Matteo Beccati wrote:
> Hi Gabriel,
>
>> Let's have this patch merged into PHP 8.0 (
master
>> branch as of today), I
>> have nothing against it.>
>> About PHPs 7.3 and 7.4: if the performance improvements are this massive as
>> describe in this email, I'm :+1: to have it on those versions as well.
>
> The mileage may very: running the Doctrine test suite, for example,
> shows no difference at all.
>
> On the other side of the spectrum, a SELECT * FROM tbl WHERE id IN (?,
> ....) and 65535 parameters:
>
>
> https://gist.github.com/mbeccati/6f2cd094c38b094cb4bfc4c0245a23ab
>
> root@jameson /tmp # /tmp/php-7.4-std bench_pdo3.php
> Got rows: 65535
> [Timings] prep: 0.018, exec: 0.210, fetch: 35.812
>
> root@jameson /tmp # /tmp/php-7.4-opt bench_pdo3.php
> Got rows: 65535
> [Timings] prep: 0.019, exec: 0.208, fetch: 0.026
>
> That's almost 36 seconds vs 26ms.
Can we be certain that the relevant bits of the formerly _reserved_flags
are zero-filled for all existing drivers?
--
Christoph M. Becker