Преимущество в эффективности, обеспечиваемое постоянными соединениями, особенно при установлении соединения, будет огромным, если у вас действительно есть 10 000 процессов, запрашивающих базу данных.
Предполагая, что вы используете PHP под Apache, при первом установлении SQL-соединения «дочерний процесс» Apache будет держать его открытым (т.е. - постоянное соединение). Все запросы PHP, которые принадлежат этому конкретному «дочернему процессу Apache», будут повторно использовать это соединение, если, конечно, информация о соединении одинакова. Конфигурация Apache определяет, сколько запросов может обработать один дочерний процесс, прежде чем он будет перезапущен, что должно очистить постоянное соединение.
Теперь есть также случай, когда вы выполняете запросы в цикле или даже, осмелюсь сказать, в бесконечном цикле. В этом случае даже непостоянное соединение будет смертельно опасным.
Сомнительно, что количество процессов, использующих ваши постоянные соединения, будет фактором эффективности сервера (если, как я уже упоминал, у вас нет неэффективного кода, использующего запросы). На чем следует сосредоточиться, так это на том, сколько постоянных подключений вы должны разрешить и сколько может обрабатывать ваша база данных/сервер?
Руководство MySQL для постоянных соединений, http://php.net/manual/en/features.persistent-connections.php, также охватывает большую часть (и даже больше) того, что я только что резюмировал.
person
newfurniturey
schedule
19.07.2012