Дополнительное подтверждение при отсутствии капчи, целую библиотеку различных капч, из которой можно выбирать в админке (или даже последовательно выстраивать 2-3 капчи).
Без регистрации сложно идентифицировать автора (на случай, если он собирается оставить несколько сообщений). Лучше использовать скрытую регистрацию (без подтверждения идентификатора, т.е. подтверждения по почте и т.п.) при получении первого сообщения.
Это точно не причина. Желательно иметь отдельные DNS-серверы, причем совершенно в разных (минимум двух) сетях. У меня, например, множество VPS. И в подавляющем большинстве случаев используются DNS-серверы Яндекса. Хотя сейчас, наверное, это уже платно (но можно у кого-нибудь выкупить аккаунт с бесплатным доступом). Также хостинг-провайдеры с каждой, даже дешевой ($5), услугой VPS обычно предоставляют DNS-хостинг с сотнями зон. Про DNS-хостинг регистратора/реселлера домена тоже не забываем. Причем все это можно объединить, если паранойя настигла.
То же самое можно использовать на обычном виртуальном хостинге. Нормальные хостинг-провайдеры заблаговременно предупреждают, когда у сайта меняется IP.
У вас похоже не только DNS-серверы Cloudflare, так что я уже не уверен, что master32 правильно определил вашего провайдера.
Кстати, кэширование страниц можно настроить в Cloudflare 😉
Вот то что показало по выборке из самой большой таблицы, но тут я простой запрос сделал (выборка по ID). Надо поработать будет чтобы показало то что нужно..
[0] => 1
[Query_ID] => 1
[1] => 0.00114473
[Duration] => 0.00114473
Используйте метод fetch_assoc, чтобы не дублировать данные (даже если фактически дублируются только ссылки на эти данные).
"То что нужно" - это что? Выше у меня закралось подозрение, что у вашего сайта запросы к базе данных неправильно составлены.
Может, он действительно данные целыми таблицами выбирает 😂
Только я один не знаю, какой это сайт?
Вы не сами писали код? Не знаете последовательность запросов, выполняемых для конкретного типа страницы (конкретной страницы, если учитывать фактические данные, т.к. они тоже могут влиять на скорость выполнения запросов)?
По моей ссылке выше показан еще второй запрос "show profile from query 1" и т.п. Если будете использовать именно командную строку, то база данных выбирается при помощи запроса "use `db_name`".
Видимо, на большее не хватает 😀 Он и "show profiles" только сделал, т.е. найденную мной предельно короткую статью до конца не дочитал 😕
Хотя, может, специально нагрузить захотел. Правда, такой запрос совсем не на то, на что нужно, нагрузку дает.