Forum Webscript.Ru

Программирование => PHP => Тема начата: Dudu от 12 Сентября 2002, 11:39:38

Название: Корректные обращения к БД
Отправлено: Dudu от 12 Сентября 2002, 11:39:38
Всю свою сознательную жизнь писал запросы к MySQL в таком виде:

mysql_pconnect("localhost","user","password");
mysql_select_db("superbasa");

$SQL = mysql_query("SELECT * FROM table");
while ($RES = mysql_fetch_object($SQL))
{
    print "$RES->id
";
}
?>

Но как-то мне рассказали, что подобным образом я пложу кучу постоянных соединений, что приводит к существенной нагрузке MySQL.

Вопрос: и как это дело нужно делать правильно, чтоб и пользователь не ждал полгода ответа и чтоб сервак не напрягался?
Название: Корректные обращения к БД
Отправлено: Меняздесьдавнонет от 12 Сентября 2002, 11:49:33
по полгода юзер ждет ответ либо потому что у тебя страница слишком большая, либо потому, что запросы неоптимизированные.
А чтобы сервак не напрягался - пиши mysql_connect, без p
Название: Корректные обращения к БД
Отправлено: Dudu от 12 Сентября 2002, 11:54:07
А разве устанавливая постоянное соединение с БД мы не повышаем скорость  запросов и возврата результатов?
Название: Корректные обращения к БД
Отправлено: Antoxa от 12 Сентября 2002, 13:29:20
Dudu
Цитировать
А разве устанавливая постоянное соединение с БД мы не повышаем скорость запросов и возврата результатов?

теоретически да, но практически в пхп это дело реализовано очень криво (надо в исходники посмотреть) и только все портит.
Название: Корректные обращения к БД
Отправлено: Tronyx от 12 Сентября 2002, 13:44:06
Цитировать
А разве устанавливая постоянное соединение с БД мы не повышаем скорость запросов и возврата результатов?

Antoxa прав в ПХП это только теоритически... Можно написать демона на Си который будет держать только одно постоянное соединение, но это уже трудней...
Название: Корректные обращения к БД
Отправлено: Dudu от 12 Сентября 2002, 13:58:57
Понятно, т.е. реально разницы в скорости нет....
Учту.
Хотя нашел я топики здесь про mysql_pconnect, в которых с ужасом рассказывается о тысячах постоянных подключений, которые не умирают по таймауту - сколько так делал, ни разу такого не было.