Как контролировать несколько подключений к MySQL? - PullRequest
1 голос
/ 12 февраля 2012

У меня есть веб-сайт, который работал очень хорошо в течение последних 2 лет, но теперь у него больше посетителей и больше контента. Я использую WordPress и из-за этого контента и посетителей, я получаю несколько подключений к базе данных в ОДИН конкретный момент. Как это решить?

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

Возможное решение этой проблемы:

СООБЩЕНИЕ ДЛЯ ПОСЕТИТЕЛЯ: В данный момент сайт недоступен.

Как узнать, когда превышено максимальное количество соединений?

Ответы [ 3 ]

2 голосов
/ 12 февраля 2012

Здесь есть несколько вариантов:

  1. Вы можете реализовать слой кэширования с помощью предложения Seanbreeden, я уверен, что есть много доступных.Скорее всего, многие страницы вашего блога статичны, поэтому плагин кэширования, который кэширует всю страницу, определенно поможет.Взгляните на лак .

  2. Если кэширование по-прежнему не помогает, вы можете рассмотреть вопрос о переносе приложения на хост, который более щадящий в отношенииобщее количество подключений в любой момент времени, возможно, даже виртуальный частный сервер, которые довольно дешевы, проверьте Linode.com

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

- Правка -

Похоже, что вы можете получить текущие 'активные' соединения, выполнив запрос, подобный следующему:

mysql> SHOW GLOBAL STATUS LIKE 'Threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 1     |
+-------------------+-------+
1 row in set (0.00 sec)    

Я не могу вспомнить точный код, но мы реализовали механизм "повтора", когда PDOException было поднято, и код соответствовал 'слишком много соединений', мы бы приостановили запрос, затем повторили бы $ x количество раз.

1 голос
/ 12 февраля 2012

Существует простое решение для этого, называемое кэшированием.

Вы можете установить плагин кеширования в вашей установке WordPress, который уменьшит количество необходимых соединений с базой данных.

Список и сравнение плагинов кеша для WordPress смотрите по этой ссылке: Список плагинов кеша

1 голос
/ 12 февраля 2012

Найдите плагин кэширования для Wordpress и установите его.Кэширование снизит нагрузку на базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...