The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Кардинальный метод защиты от XSS и атак по подстановке SQL-з..., opennews (??), 17-Июн-10, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


27. "bind"  +3 +/
Сообщение от Sabitov (?), 17-Июн-10, 06:51 
Фигня :)

Параметризованные запросы сильно ускоряют работу при использовании нормальных СУБД, даже безотносительно к безопасности. Кодеры, которые не используют таких запросов, должны лишаться ЗП в обязательном порядке! :)

К сожалению, пыхпых 5 не умеет их поддерживать, если используется mysql, а не mysqli :( Но это уже другая песня.


Ответить | Правка | Наверх | Cообщить модератору

29. "bind"  +/
Сообщение от filosofem (ok), 17-Июн-10, 08:22 
Зачем mysqli да, если есть выбор пиши под постгрес, не пожалеешь. =)
И автора не обижайте, уверен, что он пошутил, насчет "никто не пишет".
Ответить | Правка | Наверх | Cообщить модератору

61. "bind"  +1 +/
Сообщение от Pashugan (?), 17-Июн-10, 13:07 
Раз уж пошла такая пьянка... Есть неочевидный фактор, который заставляет меня усомниться в справедливости Вашей зарплаты. ;) Время выполнения запроса к типичному веб-приложению - доли секунды. Если оно реализовано на скриптовых языках по стандартной схеме типа apache+mod_php5, то через эту долю секунды процесс умирает вместе со всеми объектами параметризированных запросов, и они будут создаваться заново при каждом новом запросе. Количество использований каждого из prepared statements (речь ведь идёт о них?) в таком приложении будет скорее всего равно 1. Более того, так и должно быть, мы ведь не делаем селекты в цикле, верно? :) Соответственно, те выгоды, о которых Вы говорите, проявляются лишь в приложениях, которые непрерывно висят в памяти и не собирают контекст на каждый чих, будь то java-сервлеты или скрипты+fastcgi. Я замерял, биндинг mysqli проигрывал примерно на 30% конкатенации+mysql_real_escape_string(), хотя эта цифра может служить для ориентировки.
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

80. "bind"  –1 +/
Сообщение от аноним (?), 17-Июн-10, 17:19 
>Раз уж пошла такая пьянка... Есть не очевидный фактор, который заставляет меня усомниться в справедливости Вашей зарплаты. ;)

Ты написал тупость, которая даже в мена костыле MySQL уже не соответствует действительности ...

Простой вопрос на засыпку, что происходит (в нормальных DBMS) после того как парсер разобрал параметризованный запрос, но до того как ты забиндил значение и позвал экзекутор?
Подсказка: ну хорошо - позвал ты экзекутор, что происходит дальше?


Вот - вот, семь раз RTFM - один раз ...  :)

Ответить | Правка | Наверх | Cообщить модератору

86. "bind"  +1 +/
Сообщение от Ivan1986email (?), 17-Июн-10, 20:35 
Вообще написал он правильно - разница в скорости выполнения минимальна.
Вызов функций биндинга даже чуть подороже, чем склейка строки + эскейпинг. Вобщем мы от этого отказались еще года два назад, когда только написал для симплы драйвер PDO, сначала написал с биндингом параметров, потом поставил опцию раскрытия симплой - получилось быстрее.

Разумеется это не относится к циклу одинаковых запросов, но это настолько редкая ситуация, что смысла нету.

Ответить | Правка | Наверх | Cообщить модератору

92. "bind"  +1 +/
Сообщение от onk (?), 18-Июн-10, 11:44 
Вы в корне не правы (или правы в некотором частном случае)!
может быть для MySQL это и правда, но приличные СУБД (в частности Oracle) _кешируют_ запросы после парсинга. в итоге запрос повторно разбирать не нужно!
собственно число запросов в приложении конечно и при достаточном обьеме кеша у СУБД это неплого ускоряет работу.
Ответить | Правка | Наверх | Cообщить модератору

94. "bind"  +/
Сообщение от Pashugan (?), 18-Июн-10, 14:52 
>Вы в корне не правы (или правы в некотором частном случае)!
>может быть для MySQL это и правда, но приличные СУБД (в частности
>Oracle) _кешируют_ запросы после парсинга. в итоге запрос повторно разбирать не
>нужно!
>собственно число запросов в приложении конечно и при достаточном обьеме кеша у
>СУБД это неплого ускоряет работу.

Так ли в корне он неправ? Помимо времени на компиляцию запроса есть ещё фактор двойной передачи данных - запроса и параметров. Скорее всего, вычисление ключа кеша осуществляется на сервере, а значит текст запроса всё равно нужно сначала передать на сервер. Так что продолжать спорить считаю бессмысленным, и если у Вас есть под рукой Oracle с быстрым надёжным каналом до него, буду рад увидеть результаты тестов.

Ответить | Правка | Наверх | Cообщить модератору

93. "bind"  +/
Сообщение от Pashugan (?), 18-Июн-10, 14:39 
Я знаю, что правильно написал, потому что проверял это реальными тестами mysqli, а не просто занимался упражнениями в красноречии. :) Также я всегда готов выслушать обоснованные возражения и по-нормальному поспорить, чтобы докопаться до истины, но не вижу смысла отвечать анонимусам, которые готовы только гадить на голову коллег по цеху, но по существу вопроса ничего не пишут. :)
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

97. "bind"  +1 +/
Сообщение от tupkaemail (?), 18-Июн-10, 19:34 
>Вот - вот, семь раз RTFM - один раз ...  :)

Семь раз RTFM, один раз rm -rf :D

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру