|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Serge Shikov 2:5020/400 20 Jun 2001 19:43:38 To : All Subject : Re: Литература по PHP -------------------------------------------------------------------------------- Dmitry Ban wrote: > > SS> Ты проиграешь в скорости. Причем возможно на порядки. > > SS> for (my $param ...) { > SS> $sth=$dbh->prepare("select * from table where id='$param'"); > SS> $sth->execute; > SS> ... > SS> } > SS> Угу? Если '?' имеют место, prepare можно вынести из цикла. > > Чтобы пpоигpать в скоpости хотя бы на поpядок, нужно, чтобы стpока запpоса > генеpилась на два поpядка медленнее, чем выполнение запpоса базой + > последующая обpаботка pезультата :> Выполнение запроса = компиляция SQL + выполнение SQL. Если какой-нибудь mySQL запросы не компилирует - это не значит, что так правильно, и что все так делают. Если ты не знаешь, сколько времени в обработке запроса занимает его компиляция - это тоже не значит, что она не занимает времени совсем. Как раз наоборот. Как минимум для такого запроса как тут, чтобы его скомпилировать, надо сделать: select * from systables where table_name='table' select * from syscolumns where table_name='table' select * from где-у-нас-там-grant-лежат where table_name='table' и так далее, чтобы выяснить, а какие там колонки есть, а какого они типа, а можно ли данному юзеру на них select делать, и т.д. и т.п. И это уже как минимум _три_ select-а, на один юзерский. > Пpавильнее будет сказать так: "если вынести prepare из цикла, можно добиться > пpиpоста пpоизводительности не менее чем на 0.001%". Мсье откровенно гонит. Слабо взять да померять, сколько на самом деле занимает prepare? --- ifmail v.2.15dev5 * Origin: home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/2825d1345548.html, оценка из 5, голосов 10
|