Имеет ли смысл хранить часть данных из базы в файлах?

pashin

Новичок
Имеет ли смысл хранить часть данных из базы в файлах?

Есть проблема:
Падает MySQL из-за превышения кол-ва запросов к базе, 99% происходит ночью, когда боты поисковиков шарятся по сайту и массово индексируют/переиндексируют объявления на доске (около 80.000 страниц, посещаемость 1000-1300 чел/сутки).

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

1)Имеет ли смысл таким образом снижать нагрузку на MySQL?
2)Может быть имеет смысл сразу создавать html файл с объявлением?

Хостер (mastrhost) предложил перейти на выделенный сервер...
Всем заранее спасибо.
 

Армян

Новичок
1000-1300 чел/сутки
Помоему мало для выделенного. Попробуйте оптимизировать запросы, это ведь небольшая посещаемость.

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

phprus

Moderator
Команда форума
pashin
1000 человек в сутки - это очень мало для того, чтобы валить сервер, по этому вначале начни с оптимизации всех запросов к БД. Проверь правильно ли расставлены индексы, посмотри сколько запросов выполняется на одну страницу и нет ли среди них большого числа медленных запросов...
 

Фанат

oncle terrible
Команда форума
Валят базу не посетители, а боты, десятками запросов в секунду.

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

pashin

Новичок
Автор оригинала: *****
Валят базу не посетители, а боты, десятками запросов в секунду.

Валит базу не количество запросов, а скорость их выполнения.
Поэтому сначала надо, как советуют, разобраться с оптимизацией запросов, а потом уже думать о кэшировании
Переписка с хостером:
1) Медленных запросов нет, т.к. если они появляются, то приходит уведомление на мыло.
2) Существует ограничение на количество одновременных подключений к базе, равное 64
3) Также ночью создаются резервные копии баз данных, в связи с чем могут возникать трудности с доступом

Кол-во запросов к БД на странице 1, в редких случаях 2.
Индексы расставлены по полям, которые участвую в условии where (как правило это только первичный ключ).
 

Фанат

oncle terrible
Команда форума
Индексы расставлены по полям, которые участвую в условии wher
эта фраза не имеет смысла.
кроме расставления индексов надо еще проверять, как они действуют.

и вообще непонятно, при зачем здесь переписываться с хостером.
 

phprus

Moderator
Команда форума
pashin
Либо хостер что-то не договаривает, либо виноват в падениях не ты.
Сделай все-таки в своем коде мониторинг времени выполнения запросов и посмотри какие запросы и какое время выполняются в момент наибольшей нагрузки, а именно ночью. Тогда можно будет делать выводы о причинах того, кто виноват и что делать.

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

*****
Валят базу не посетители, а боты, десятками запросов в секунду.
Если честно, то я еще ни разу не встречал поисковых ботов которые посылали десятки запросов в секунду.
 

michelle

Новичок
Автор оригинала: pashin
3) Также ночью создаются резервные копии баз данных, в связи с чем могут возникать трудности с доступом
Делай бекап под утро или тогда, когда меньше всего нагрузка на базу!
Можно сделать какой-нибудь "хитрый" бекап (берет только изменившиеся или новые данные или что-то в этом роде)!
 

pashin

Новичок
Автор оригинала: michelle
Делай бекап под утро или тогда, когда меньше всего нагрузка на базу!
Можно сделать какой-нибудь "хитрый" бекап (берет только изменившиеся или новые данные или что-то в этом роде)!
Бекап делает хостер автоматически, каждую ночь (от меня это не зависит)

Сегодня ночью MySQL упал 3 раза:
PHP Warning: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Too many connections

Счетчик (текстовый) показывает, что боты за 2-3 часа сожрали 15752 стр. из них 80% Yandex/1.01.001 (compatible; Win16; I)
 

dr-sm

Новичок
ну в качестве квик хака можно циклицо со слипом при ошибке.
 

pashin

Новичок
Спасибо, поставил 5 секунд. Посмотрю что получится.

Автор оригинала: dr-sm
ну в качестве квик хака можно циклицо со слипом при ошибке.
Ничего не понял, можно немного разжевать?
 
Сверху