Это значит, что одновременно выполняется много SQL-запросов к одной базе данных. В нормальных условиях запросы выполняются очень быстро (доли секунды) и накладываются друг на друга крайне редко. Такое одновременное наложение друг на друга большого количества запросов по времени может происходить в следующих ситуациях:
У вас ОЧЕНЬ высокая посещаемость сайта, и при открытии страниц SQL-запросы выполняются ОЧЕНЬ часто.
При открытии страниц выполняются медленные SQL-запросы. Если даже небольшое количество пользователей более-менее одновременно откроют страницу (или выполнят другое действие на сайте — например, запустят поиск), которые используют такие медленные запросы, то они легко наложатся друг на друга. Медленные запросы обычно свидетельствуют о неоптимально написанном программном коде приложения или плагина, которые используются на страницах сайта. Если есть информация, на каких страницах у вас чаще всего возникает такая ошибка и какие действия пользователи выполняют перед возникновением ошибки, то это может помочь выяснить, используется ли какой-то плагин на таких страницах. Такую информацию можно попробовать получить из логов веб-сервера и сервисов наподобие "Гугл-аналитики" и "Яндекс.Метрики".
Медленные SQL-запросы могут выполняться и без установки плагинов. Например, если у вас ОЧЕНЬ большой каталог товаров и настроены фильтры в категориях, то одновременное применение фильтров большим количеством пользователей может привести к тому, что сразу будет выполнено большое количество медленных SQL-запросов, которые требует больше времени, чем обычно, чтобы получить информацию из базы данных. Такая ситуация может возникнуть, например, если вы рекламируете ссылки на заранее подготовленные результаты фильтрации товаров в категориях по каким-то параметрам (характеристикам), и по этим ссылкам из ваших рекламных объявлений более-менее одновременно переходит сразу большое количество посетителей.
Другая ситуация, когда это бывает возможно: если у вас в теме дизайна используются нестандартные размеры изображений товаров и включено формирование эскизов изображений "на лету". При одновременном первом открытии разных страниц витрины формируется большое количество новых нестандартных эскизов. Для получения информации о каждом эскизе PHP-скрипт обращается к базе данных. Если на странице, скажем, 30 новых изображений, которые нужно сформировать "на лету", и таких страниц много, и все они открываются большим количеством посетителей в сравнительно сжатый период времени (что довольно маловероятно, но теоретически возможно), то начинают выполняться сразу много SQL-запросов с той же самой ошибкой "слишком много подключений".
Как от этого избавиться: увеличить значение параметра max_user_connections в конфигурации MySQL на хостинге. В облаке персонально для вас вряд ли этот параметр будет увеличен, если только эта проблема не будет признана массовой. Поэтому сначала понаблюдайте, насколько часто и на каких страницах возникает ошибка. На основании этой информации можно будет решать, какие меры стоит предпринимать.
8 комментариев
Слишком много подключений....
Спасибо большое
Что предпринять, чтобы не появлялось такое оповещение? (много подключений - как это понять? много пользователей на сайте, или что-то другое)
Это значит, что одновременно выполняется много SQL-запросов к одной базе данных. В нормальных условиях запросы выполняются очень быстро (доли секунды) и накладываются друг на друга крайне редко. Такое одновременное наложение друг на друга большого количества запросов по времени может происходить в следующих ситуациях:
Медленные SQL-запросы могут выполняться и без установки плагинов. Например, если у вас ОЧЕНЬ большой каталог товаров и настроены фильтры в категориях, то одновременное применение фильтров большим количеством пользователей может привести к тому, что сразу будет выполнено большое количество медленных SQL-запросов, которые требует больше времени, чем обычно, чтобы получить информацию из базы данных. Такая ситуация может возникнуть, например, если вы рекламируете ссылки на заранее подготовленные результаты фильтрации товаров в категориях по каким-то параметрам (характеристикам), и по этим ссылкам из ваших рекламных объявлений более-менее одновременно переходит сразу большое количество посетителей.
Другая ситуация, когда это бывает возможно: если у вас в теме дизайна используются нестандартные размеры изображений товаров и включено формирование эскизов изображений "на лету". При одновременном первом открытии разных страниц витрины формируется большое количество новых нестандартных эскизов. Для получения информации о каждом эскизе PHP-скрипт обращается к базе данных. Если на странице, скажем, 30 новых изображений, которые нужно сформировать "на лету", и таких страниц много, и все они открываются большим количеством посетителей в сравнительно сжатый период времени (что довольно маловероятно, но теоретически возможно), то начинают выполняться сразу много SQL-запросов с той же самой ошибкой "слишком много подключений".
Как от этого избавиться: увеличить значение параметра max_user_connections в конфигурации MySQL на хостинге. В облаке персонально для вас вряд ли этот параметр будет увеличен, если только эта проблема не будет признана массовой. Поэтому сначала понаблюдайте, насколько часто и на каких страницах возникает ошибка. На основании этой информации можно будет решать, какие меры стоит предпринимать.
Добрый день!
Как с помощью Яндекс.Метрики вычислить кривой плагин, который дает ошибку 1203?
Спасибо
там случайно проблема массовой еще не стала?)
может пришло то время когда уже пора увеличить для облака этот параметр?
Если вы считаете, что вам это нужно, напишите нам в службу поддержки — посмотрим, как можно улучшить работу вашего сайта в облаке.