danita

Проблема с Базой Данных

Рекомендуемые сообщения

danita    0

Стало выбивать сайт, пишет:

Error: User 'такой-то' has exceeded the 'max_questions' resource (current value: 25000)

Error No: 1226

SELECT * FROM setting

Подскажите, пожалуйста, что это значит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UncleAndy    16

Скорей всего на сервере mysql стоит ограничение на максимальное количество запросов для одного подключение или что-то похожее. Вы случайно не мой драйвер mysql_cached используете? В нем для коннекта к mysql используется функция mysql_pconnect для ускорения подключения. Она использует уже открытые соединения если такие есть. Т.е. отключений от mysql сервера в таком варианте может не происходить достаточно долго. Соответственно лимит, на который идет ругань надо отключать, т.к. в таком случае он не имеет смысла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
danita    0

Скорей всего на сервере mysql стоит ограничение на максимальное количество запросов для одного подключение или что-то похожее. Вы случайно не мой драйвер mysql_cached используете? В нем для коннекта к mysql используется функция mysql_pconnect для ускорения подключения. Она использует уже открытые соединения если такие есть. Т.е. отключений от mysql сервера в таком варианте может не происходить достаточно долго. Соответственно лимит, на который идет ругань надо отключать, т.к. в таком случае он не имеет смысла.

Драйвер mysql_cached не использую. Обращалась к хостеру, он ответил: У вас превышение лимита запросов к базе за час. Или оптимизируйте сайт, или меняйте тариф на больший. Вы должны знать, как сократить количество запросов к базе.

Может Вы знаете как сократить количество запросов к базе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UncleAndy    16

Кстати, в таком случае именно драйвер mysql_cached вам может помочь. Он кэширует запросы SQL и, соответственно, при этом не обращается к БД.

Вот ТУТ его можно скачать и почитать как его установить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
monax    178

UncleAndy, а можно поподробнее объяснить назначение драйвера, с точки зрения практического применения? Я так понимаю, он уменьшает нагрузку на сервер? Это как-то увеличивает быстродействие? На сколько? Как он себя поведёт, если одновременно будет, например, 100 посетителей? Какие в нём минусы?

ЗЫ. У меня свой VPS-сервер, поэтому проблемы с какими-то ограничениями нет..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UncleAndy    16

Драйвер достаточно простой. Если он видит что запрос начинается с "SELECT", он формирует ключь (md4hex) и смотрит наличие данного запроса в кэше. Если он в кэше есть, тогда берется значение из кэша. Если в кэше значения нет - делается запрос к БД и результат кроме выдачи наружу еще записывается в кэшь. Время в течении которого кэшь действует, регулируется в файле config.php строкой

define('DB_CACHED_EXPIRE', 120);

С точки зрения быстродействия выгодность его применения очевидна. На той конфигурации, на которой я тестировал, использование кэширования SQL запросо (совместно с кэшем в memcached) увеличивал частоту запросов при тестировании примерно с 15-18 до 28-30 запросов в секунду. При использовании файлового кэша выигрыш возможен при большой БД товаров.

При его использовании следует учитывать следующее:

- пока в админке нет модуля который может сбрасывать этот кэшь (есть в планах);

- крайне не рекомендую его использовать в админской части - он предназначен не для этого;

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

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

Хочу отметить, что, когда я столкнулся с высокой нагрузкой на предыдущих своих проектах (до 5 млн кликов в сутки), кэширование с использованием memcached меня сильно выручило.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
danita    0

Кстати, в таком случае именно драйвер mysql_cached вам может помочь. Он кэширует запросы SQL и, соответственно, при этом не обращается к БД.

Вот ТУТ его можно скачать и почитать как его установить.

Спасибо! Попробую.

Все равно наверное у меня неудачный хостинг. Сайт долго грузиться стал. Выдает часто ошибку: 504 Gateway Time-out - nginx/0.7.67

Может кто-нибудь посоветует быстрый качественный хостинг?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Papiros    0

Тоже столкнулся с превышением запросов к БД. Толком не пойму что делать.

Какие еще есть варианты, для сокращения запросов, не считая предложенного вами драйвера? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу