netwind

Рейтинг
419
Регистрация
06.05.2007
Есть VDS, на нём большой блог на вордпресс, разрослась одна категория до 70000 постов

вот сам запрос, думаю известный достаточно запрос

Смотря кому известный. Обычный блог для людей, который ведут люди в один момент не напишет 70000 постов и уж точно постарается улучшить и таксономию и вообще ресурсы к тому моменту когда он разрастется . Разработчики wordpress на это не рассчитывают. Они знают, что у вас сеошная помойка, презирают и делать ничего не будут.

Я бы попытался вытащить фильтр таксономии "наверх" и тогда основная выборка будет цепляться за индекс type_status_date. По крайней мере у меня цепляется, но где я возьму столько мусора в блоге?

Попробуйте у себя план и скорость вот на таком фокусе:


select wpint.id from(
SELECT wp_posts.ID, wp_term_taxonomy.term_id
FROM wp_posts
INNER JOIN wp_term_relationships ON ( wp_posts.ID = wp_term_relationships.object_id )
INNER JOIN wp_term_taxonomy ON ( wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id )
WHERE 1 =1
AND wp_term_taxonomy.taxonomy = 'category'
AND wp_posts.post_type = 'post'
AND (
wp_posts.post_status = 'publish'
)
GROUP BY wp_posts.ID
having wp_term_taxonomy.term_id in ('49')
ORDER BY wp_posts.post_date DESC
LIMIT 190 , 10 ) wpint


Но без экспериментальных данных ничего об выгоде и даже правильности этого запроса не скажешь. Кроме того, нужно же еще заставить wordpress собрать из кусочков именно такого вида запрос.

Вероятно, при этом листинг других категорий ухудшится. Может, собирать два вида запроса в зависимости от категории.

Формально запрос не избавляет от временной таблицы, но объем данных в ней сократится.

В целом, понятно почему кеширование так популярно. С этим просто ничего другого не сделать.

Vin_cent:
Если временные таблицы создаются в памяти, а не на диске, то в чём собственно проблема?

Скорее всего на диске.

RiDDi:
мне кажется, что виртуальный хостинг подразумевает каждому по персональному пользователю апача отличного от домашнего пользователя

Виртуальный хостинг, как его понимают тут, появился задолго до разгула виртуализации. Этимология названия скорее связана с директивой VirtualHost. А называть следовало бы массовый хостинг.

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

RiDDi:
веб-шелл запускается от имени специального пользователя от которого веб-сервер запускает скрипты - например www-data

На самом деле так уже не делают в современном виртуальном хостинге. Пользователь www-data ведь один на всех.

Наоборот, сломав соседний сайт сайт можно было прочитать и записать файлы , которые созданы для работы с этим www-data.

А еще подобная настройка приводила к повсеместному использованию магического заклинания chmod 777 , которое безопасность совсем не улучшало.

sealo, понятно, что формулировка вопроса призвана отсеять якобы случайных отвечальщиков, но вы реально думаете, что это поможет понять суть вопроса?

"Кастом" в вашей терминологии это типа лекарство, услуга или какая-то очередная неспаленная сео-тема ?

Все малоизвестные штуки делаются на основе уже известных вещей. Не стоит запутывать еще больше.

WAR - это архив. Можно сделать с помощью программы jar. Формальный ответ - man jar.

Какие именно файлы, в каких каталогах их ожидает увидеть Билайн и зачем это ему - мне не известно.

Arty Key, уверены, что все необходимые процедуры при обновлении были проделаны ?

Обычно недостаточно заменить файлы, а из админки движка нужно какую-то процедуру запустить.

Так же, возможно, правильная процедура инсталляции модуля была нарушена. Текст ошибки однозначно говорит, что в таблице dle_file нет поля size

Mihanja80:

4. tmp_table_size (> 64M) & max_heap_table_size (> 64M) - устанавливал 256М, просит больше... Зачем?

Это так неверно закодировано в логике этого скрипта.

В некоторых запросах mysql использует временные файлы не зависимо от размера это переменной. А писатель скрипта этого не знает или намеренно считает слишком редким случаем.

join_buffer_size - сколько не ставь, просит больше (пробовал даже 64М). Сколько оптимально?

Та же история.

Вывод из этого должен быть такой : не использовать скрипт mysqltuner как руководство к непосредственным действиям, но лишь для сбора информации.

Вообще, dmesg пишет время аж c шестью знаками после запятой (в современных ядрах). Можно добавить два правила iptables -j LOG и попробовать хватит ли этой точности. Подозреваю, что не хватит.

leo3331:
Я так понимаю что когда устанавливается соединение пакеты игнорируются в ipset, и проверяется ip только тогда когда уже отправляется заключительный пакет ASK от клиента. Или же пакеты SYN так же будут проверяться?

Если очень хочется, то можно подгрузить модуль conntrack и построить правила так, чтобы проверялся пакет только у новых соединений. Модуль как раз для этого и придуман.

Для конфигурации без ipset это очевидно имеет смысл. Для ipset может быть наоборот замедлит в итоге, поскольку добавляется работа по проверке и поиску в этой таблице. Надо измерять.

ViZed, довольно странно чтобы в нормальной работе использовалась программа whois постоянно и уж тем более загружала сервер. Это просто клиент командной строки для сервиса whois.

Сервера whois противятся большему числу запросов с одного IP, поэтому есть вероятность что кто-то будет использовать взломанные сайты для запуска этой команды.

Предлагаю варварский, но простой способ : удалить файл /usr/bin/whois и посмотреть что сломается на сайте. Этот файл сайтам вряд ли нужен.

И прогнать антивирусами типа ai-bolit и lmd.

maxamax, что у некоторы душа за клиента болит - это похвально, но делать то что собираетесь ? Портить клиентам сайты неквалифицированным апгрейдом? Душа, кстати, потом сама пройдет.

rustelekom, разве в контексте хостинга всем не наплевать на XSS?

Зачем об этом беспокоиться хостерам ? Кто-то из них будет всем клиентам wordpress-ы обновлять ? В чем смысл сообщения ?

Всего: 6293