From: | Georgi Ivanov <georgi(dot)r(dot)ivanov(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | PHP PDO->bindValue() vs row execute speed difference |
Date: | 2010-11-01 14:21:25 |
Message-ID: | AANLkTinpeZEzEBFhi-2iZ6FM9p-HtTvkVrPAgK6MPqRD@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I have following situation:
$q = 'select * from tbl1 where id = :id';
$stmt = $dbh->prepare($q);
$stmt->bindValue(':id', $id , PDO::PARAM_INT);
$stmt->execute();
//1000 ms
and
$q1 = ' select * from tbl1 where id = 100 ';
$stmt = $dbh->prepare($q);
//NO binding here !
$stmt->execute();
//2 ms
The queries are a bit more complex, but this is enough to get the idea.
So the first query runs for about 1000 ms
The second query( w/o binding) runs for about 2 ms.
If I'm correct, the first query is interpreted as : select * from tbl1 where
id = (INT )
and I don't get good execution plan.
The second one is fast, because the DB see the literal 100 as value for ID
and makes a better execution plan.
Am I correct in my thoughts ?
Is there anything I can do in tuning the DB or just to skip/rewrite PHP PDO
?
From | Date | Subject | |
---|---|---|---|
Next Message | Cédric Villemain | 2010-11-01 14:29:38 | Re: PHP PDO->bindValue() vs row execute speed difference |
Previous Message | Guillaume Lelarge | 2010-11-01 13:57:50 | Re: pgAdmin 3 index display problem |