подключение к MySQL - PullRequest
0 голосов
/ 30 июля 2009

Одно из приложений ERP, с которыми я работал, было настроено таким образом, чтобы к базе данных подключался только 1 пользователь (например, USER A). Любой пользователь приложения (численность персонала составляла тысячи), вошедший в систему и пытавшийся что-либо предпринять, фактически вызывал пользователя USER A для подключения к базе данных и выполнения запросов для него. База данных была Oracle.

Мне было интересно, как добиться того же с mySQL. У меня есть веб-приложение, созданное с использованием базы данных php и mySQL. Я ожидаю, что разные люди будут запрашивать базу данных через Интернет. В настоящее время, когда пользователь открывает веб-страницу, соединение с базой данных осуществляется через одного пользователя БД. В конце запроса я закрываю соединение. Тем не менее, база данных имеет максимальное пользовательское соединение 10, что в моем понимании означает, что один пользователь может установить не более 10 соединений. Я не хочу создавать нескольких пользователей для всех людей, которые пытаются использовать мое приложение (я даже не знаю, сколько людей будут использовать приложение, и я не верю, что это будет масштабируемое решение)

Ответы [ 2 ]

0 голосов
/ 30 июля 2009

Если в соединении с базой данных отказано, верните HTTP-ошибку 502. Если соединения закрываются в конце каждой загрузки страницы, они должны длиться всего ~ 100 мс, поэтому одновременное соединение будет низким в большинстве ситуаций.

Если вам нужно настроить его, отредактируйте my.cnf для увеличения числа одновременных подключений:

max_connections = 150
max_user_connections = 150

Если трафик очень высокий, вы можете включить постоянные MySQL-соединения в PHP или кэшировать свой контент, чтобы не забивать базу данных.

Надеюсь, это поможет!

0 голосов
/ 30 июля 2009

Вам следует искать механизм кэширования соединений с БД как компонент вашего веб-сервера или языка программирования. Такой механизм будет повторно использовать соединения прозрачно для вас.

...