Вопрос в том для каких целей создается ТЗ.
Курсовая, Диплом, Торги по ФЗ о госзакупках, реальный проект автоматизации.
И если последнее, то желание включить вот такие требования в него имхо полный нонсенс.
Есть куча реальных кейсов когда приходиться идти в разрез академическим подходам.
Все определяется требованиям к объему хранимых данных ,
скорости их обработки, потоку новых / обновляемых данных в секунду времени.
Можно. Но думаю сам запрос будет длинной на несколько страниц текста. А его
план исполнения скорее всего будет O куб с несколькими последовательными фулсканами.
добавить поле Нормализованный адрес почты. Пройтись скриптом в цикле и заполнить. После этого
дубли легко найти через select * from group by normemail having count(*)>1
мне кажется массового такого решения нет. противоречие в исходных запросах.
Свой телефон / планшет нельзя. По сети можно. Такое нужно только для организаций.
Вывод, специальная разработка под заказчика.
Даже, если в плее такое есть, то через поиск вы до него не дойдете. Слишком мало инсталов.
в логах апача за минуту до начала зависона. сузит поиски до небольшого количества контролеров.
хотя забываю, что у вас битрикс, а у него MVC никак.
Еще полезно подглядеть юзера муськи, кто локи ждет. Может это совсем другой сайт на серваке.
Например ваш внутренний crm виноват, если работает от того же имени пользователя.
И да ждать целую минуту жестоко, при учете что php таймаут обычно 30 секунд.
т.е. 51 хит за 30 секунд и сайт лег.
GET_LOCK(str,timeout)
Пытается осуществить блокировку по имени, которое заданно в строке str, с временем ожидания в секундах, указанном в аргументе timeout. Возвращает 1, если блокировка осуществлена успешно, 0 - если закончилось время ожидания для данной попытки, или NULL, если возникла ошибка (такая как отсутствие свободной памяти или уничтожение потока командой mysqladmin kill). Блокировка снимается при выполнении команды RELEASE_LOCK(), запуске новой команды GET_LOCK() или при завершении данного потока. Эту функцию можно использовать для осуществления блокировок уровня приложения или для моделирования блокировки записи. Функция блокирует запросы других клиентов на блокировку с тем же именем; клиенты, которые используют согласованные имена блокировок, могут применять эту функцию для выполнения совместного упредительного блокирования:
гуглим dead lock . Когда будете про них читать поймете вообще проблемы блокировок.
У вас славо боги не диад, а просто узкое место.
накладывается блокировка. что-то считается . пишется новое значение. снимается блокировка.
но вот только очередь из тех кому надо посчитать становиться больше доступных коннектов к муське
сайт падает
з.ы. буду долго смеяться, что это например счетчик просмотра страниц сделан в самой записи новости.
Дополню. Главное выше уже есть. Сообщения в очереди.
Для понимания. Человек, бот, групповой чат в данном случае работают одинаково.
Есть tid (идентификатор кому должно быть доставлено сообщение). Получив его от
отправителя сервер кладет его в очередь.
И когда клиент (получатель) спрашивает, а что тут для меня есть, ему отдаются все еще не
доставленные сообщения.
вы сами скормили ему для обхода кучу мусорных урлов, поэтому до нормальных страниц, которые
нужно индексировать, он никак не дойдет.
Для нормальной внутренней сео оптимизации сайта
нужно срезать паразитные урлы в робот (увы только по началу урла)
иметь сайтемап с актуальной датой изменения страниц и указанием ожидаемой частоты переобхода.
управлять ответами сервера
- етаг
- ластмодифи
- правильно обрабатывать запрос If-Modified-Since
Избегать доступности одного и того же контента по разным урлам.
Давить индексацию как в вашем случае размножение урлов не значимые гет параметрами.
Например. Вы сделали форму запроса о товаре
/rerust.php?good=число
задавите /rerust в robots
ссылки на эту форму только с модификатором nofollow
Не знаю на сколько сейчас достаточно только его, раньше еще оборачивали еще все целиком в noindex
Какая разница что конкретно делает этот гет параметр и откуда он взялся. Угадал я его назначение или нет.
Для вашего вопроса почему бот запрашивает одну и туже страницу это не важно. ответ в том, что бот проверяет разные ссылки, а не одну и туже как вам кажется.
еще раз.
Бот парсит какую то страницу.
все найденные урлы собираются в очередь.
Урл включает в себя и часть после знака вопроса.
В вашем случае бот скачивает одну и туже страницу с разными окончания. отличия в hid.
Видит дубль. Выкидывает.
Но он постоянно находит еще варианты . пробует и выкидывает . Как вы пишите в темпе 10 раз в минуту.
Так что игнорируйте эти запросы как всю жизнь до этого.
Или научитесь помогать ботам не делать бесполезную работу.
я точно уверен , что из-за этого бот видит одну и туже страницу как новую.
вам нужны в индексе 100500 копий одно и того же ? бот их все равно отправляет в мусор.
указание игнорировать поисковикам этот параметр ничего не сломает для сайта.
А у Вас к этим урлам нет случайно на сайте ссылок с параметрами ?
имя переменной сессии стандартное ? что будет если запретить прием кук в броузере ?
sitemap.xml есть ? не могли там сами себе такое устроить, каждый раз отвечая, что страница была обновлена час назад из-за ошибки в часовом поясе на сервере.
И лучше такое анализировать через поисковую консоль от гугла .
fmx500, Вы в паблик решение задачи не сливайте. Не портите остальным кайф.
Это как детектив. Будет не интересно читать, если сразу знаешь про дворецкого
Курсовая, Диплом, Торги по ФЗ о госзакупках, реальный проект автоматизации.
И если последнее, то желание включить вот такие требования в него имхо полный нонсенс.
Есть куча реальных кейсов когда приходиться идти в разрез академическим подходам.
Все определяется требованиям к объему хранимых данных ,
скорости их обработки, потоку новых / обновляемых данных в секунду времени.