А редиректы отдавать скриптами? Глупо…
Две А записи? Тоже не прокатит. Зеркало сервера я не смогу сделать.
У nginx есть решение по балансировке и поиску файлов по разным серверам. Но там я так и не нашел решения зацикливания если файла нет ни на одном сервере
пока в один момент не уходит в даун, помогает остановка веб-сервера на несколько минут
Уходит в даун или собирается огромная очередь? Ваши действия и объяснения говорят только о том, что база то работает! То что вы стопите веб-сервер просто не дает новых запросов и база оживает.
Или вы все таки базу ребутите?
Если проблема в выборке, используйте кеш если это возможно. Почти на любых проектах не везде нужны актуальные данные за эту секунду. Кеш slow query запросов может дать прирост в производительности в разы!
Возможно у вас проблема с апдейтами данных. Если таблица имеет структуру myisam, при апдейте поля лочиться вся таблица и запросы стают в очередь пока запрос не выполнится.
Вы ошибаетесь. Во-первых таких запросов больше нет. При myisam и частых апдейтах у меня много запросов ставало в ожидания завершения апдейта. За сутки наблюдений с innodb все стало в разы лучше. Количество запросов в секунду выросло из 700-720 до 800! Количество 502 ошибок вообще ушло в 0 за сегодня.
Запрос из примера это наследие старых mysql_num_rows в коде, который писался еще лет 5 назад.
Да, к сожалению я не родился зная сразу все. Тогда не знал разницу с count(id) или еще лучше SQL_CALC_FOUND_ROWS. Много где использовал mysql_num_rows. По мере нахождения исправляю старые глупости. Но суть вопроса была в другом…
В таблице всего 300к записей.
Отпустило после того, как выделили под innobd больше оперативки.
Запрос из примера это наследие старых mysql_num_rows в коде который писался еще лет 5 назад.
Запрос конечно же сменил. Пока глюков не наблюдаю, 698.71 запросов в секунду.