2016-12-31 5 views
0

Мой проект - это сайт с динамическими страницами.MySQL MAX CONNECTIONS PER HOUR оптимальное значение

Каждый раз, когда пользователь запускает запрос (который возвращает результаты, отображаемые в таблице, сгенерированной PHP), я подключаюсь к базе данных, запрашиваю ее, а затем немедленно отключается.

Если я оцениваю максимальное значение запросов/час, которое может сделать мой пользователь, результатом может быть 60 минут x 5 запросов/мин = 300 запросов/час.

У меня также есть некоторые дополнительные запросы, сгенерированные JavaScript, я могу добавить дополнительные 100 в час для них.

Итак, учитывая вышеизложенное, мои MAX CONNECTIONS ... должны быть 400. Конечно, это, вероятно, максимальное значение.

Это правильно? Можете ли вы сказать мне, что такое «обычное» значение?

EDIT: У меня нет опыта вообще в этом вопросе, я не дБА. Я думал, что ограничение этих номеров на счет - хорошая политика безопасности.

Мой код соединения:

$db_conn = mysqli_connect("localhost", $username, $password, "Database"); 
if (mysqli_connect_errno()) 
    { 
    $err_message = 'Unable to connect to DB'.PHP_EOL.mysqli_connect_error(); 
    ... 
    } 
+0

Это полностью зависит от вашей среды, но я не вижу причины устанавливать нижний предел этого. Возьмите свои расчеты и умножьте на 100 или даже 1000. Я бы не предложил поставить значение ниже 100 000 запросов в час. – LStarky

+0

Что заставляет вас думать, что настройка mysql - это максимальная сумма * в час *? Насколько я вижу, это ** максимальное одновременное подключение к клиенту ** разрешено: https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_connections – rednaw

+1

попытаться создать базу данных Постоянство связи –

ответ

1

Не ограничивайте MAX_CONNECTIONS_PER_HOUR, MAX_QUERIES_PER_HOUR, или любой из этих вещей, когда вы GRANT доступ к вашему веб-приложений PHP. Ничего хорошего из этого не выйдет. Если ваше приложение php попадает в эти ограничения, оно начнет бросать неприятные сообщения об ошибках пользователям. Это не для веб-приложений. Именно там для приложений корпоративного стиля, где у adam, barney и charlie есть собственное имя пользователя и пароль на сервере MySQL.

У компьютеров веб-сервера обычно есть только одна или две комбинации имени пользователя и пароля, используемые от имени всех пользователей. Плохая практика безопасности заключается в создании учетных записей на сервере MySQL, которым пользователи знают пароли.

Что касается общего количества подключений, это зависит от размера вашей серверной машины MySQL и количества машин веб-сервера, обслуживающих ваше веб-приложение. mysqli_ has persistent connections built in, поэтому соединения снова используются. Когда соединения заканчиваются, обычно запросы php попадают в очередь.

100 соединений на сервер веб-сервера, вероятно, ОК, если только ваши машины веб-сервера не являются огромными четырёхъядерными монстрами с 16 г памяти.

+1

Кстати, расчеты нагрузки, которые вы делали в своем вопросе, звучат. Подобные вычисления снова появятся для вас, когда вы будете готовы расширять это приложение. –

+0

Мой сайт будет размещен, поэтому я думаю, что у серверов не будет проблем с номером подключения. Моей причиной этого вопроса была безопасность. Я совершенно новичок в этом - это причина того, что я спрашиваю: «Правильно ли это (мое мышление)?». Спасибо за ваши ответы и комментарии. – Mikey

+0

Не позволяйте своему провайдеру хостинга ограничить MAX_CONNECTIONS_PER_HOUR и т. Д. !! Они, вероятно, не будут пытаться, но если они это сделают, увольте их и получите другого провайдера. Шутки в сторону. –

1

Прежде всего ...

Какова ваша цель для ограничения этого? Если вас беспокоят ресурсы сервера, вам не обязательно быть. MySQL чрезвычайно эффективен и может управлять TRILLIONS запросов в час. Зачем устанавливать нижний предел, который может вызвать проблемы? Я вообще не вижу большой причины установить это значение вообще или, конечно, не на что-то меньшее, чем ваше воображаемое воображение могло бы представить ваш сайт. Итак, если вы решите указать это, убедитесь, что это большое количество, например, 100 000.

Во-вторых ...

Может быть, вы спрашиваете, потому что вы находитесь в процессе создания учетных записей пользователей. Однако указанные здесь параметры: необязательны и в большинстве случаев, вероятно, не очень беспокоят. Я бы предположил, что, если нет конкретной проблемы, вы просто не указываете эти параметры.

http://dev.mysql.com/doc/refman/5.6/en/user-resources.html

+0

Да, сегодня я создаю учетные записи - этот сайт разработан исключительно мной и для моего проекта, поэтому мне больше нечего просить. – Mikey