Спрашиваем и отвечаем по Wordpress-10

TA
На сайте с 12.06.2009
Offline
116
TiA
#541
Коготь дракона:
1. Как понять, является ли БД в конкретном случае причиной медленной работы сайта или нет?

Самый простой способ - это установить https://ru.wordpress.org/plugins/query-monitor/ и посмотреть сколько выполняются запросы к базе данных.

Коготь дракона:
2. Влияет ли общий вес БД на скорость работы сайта или скорее влияет количество и запутанность связей в БД?

На скорость работы БД влияет огромное количество факторов. Самые основные - это количество записей, сложность запросов, наличие индексов и кешируемость запросов на уровне query cache.

Коготь дракона:
3. Что можно предпринять для оптимизации? Я посмотрел на свою базу и обратил внимание, что есть поля, которые можно удалить. Но есть ли смысл в этом? Оптимизация базы данных в основном заключается в удалении ненужных полей?

Для начала имеет смысл установить плагин для объектного кеширования вместе с соответствующим модулем PHP. Пример: https://ru.wordpress.org/plugins/apcu/

Это уменьшит количество запросов к БД в разы. После этого можно заняться оптимизацией базы данных: https://ru.wordpress.org/plugins/wp-optimize/

Коготь дракона:
4. Если заказывать услугу по оптимизации, то на какие параметры смотреть ("было/стало")? Сколько это может стоить?

Оптимизация - это очень широкое понятие. Кто-то ограничивается просто установкой плагинов для кеширования и оптимизации, кто-то дополнительно проводит аудит темы оформления и оптимизирует ее.

Еще одна область - это клиентская оптимизация, которая может включать кеширование ресурсов на стороне клиента, объединение и минификацию скриптов, реализацию спрайтов для CSS.

Отдельно стоит упомянуть о серверной оптимизации.

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
IT
На сайте с 28.03.2015
Offline
25
#542

Всем добрый вечер!

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

Но, получается только добавить ссылки, остальное все без изменений.

Возможно ли как-нибудь решить данную задачу, или это недостаток интернет магазина на Wp+Woocommerce ?

Недорогая установка камер видеонаблюдения по Москве и Московской области!
КД
На сайте с 03.02.2014
Offline
24
#543
TiA:
Самый простой способ - это установить https://ru.wordpress.org/plugins/query-monitor/ и посмотреть сколько выполняются запросы к базе данных.

Во-первых, спасибо за развернутый ответ!

Плагин установил, никаких проблем в нем не увидил (или просто не смог правильно прочитать цифры). Вот какие результаты вижу:

http://joxi.net/WL21jxXCWQa9AX

http://joxi.net/4zAN5PaCVWyM29

Есть тут что-то аномальное?

TiA:
наличие индексов и кешируемость запросов на уровне query cache.

Я так понял, что речь идет про эти настройки?

http://ruhighload.com/post/%D0%9A%D0%B0%D0%BA+%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE+%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C+MySQL+%D0%B4%D0%BB%D1%8F+Wordpress%3F

Судя по всему, у меня это всё отключено. Следует начать с этого?

TiA:
Для начала имеет смысл установить плагин для объектного кеширования вместе с соответствующим модулем PHP. Пример: https://ru.wordpress.org/plugins/apcu/

Почитал про объектное кеширование, попробовал установить несколько плагинов - все выдали фатальную ошибку. Буду разбираться в чем дело.

На сайте еще присутствует такая проблема - периодически возникает ошибка "database connection error" - отваливается mysql, при этом посещаемость сайта достаточно низкая. Это тоже как-то связано с запросами к БД?

Спасибо.

Mendax
На сайте с 26.11.2010
Offline
92
#544

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

Заранее спасибо.

Подпись не трогать мою!!!!!!
SeVlad
На сайте с 03.11.2008
Offline
1609
#545
TiA:

На скорость работы БД влияет огромное количество факторов. Самые основные - это количество записей,.

TiA, при всё уважении, но вот тут ты ммм.... некорректно ответил. Вопрос был о скорости работы сайта, а не скорости работы БД (даже не с БД). Да, скорость работы самой БД является одним из фактором, влияющим на скорость сайта. И фактором существенным. Но вопрос был не совсем об этом.

И вот я смею утверждать, что количество записей на скорость работы сайта не влияет сколь либо существенно. Во всяком случае если речь идёт о сайте на ВП в котором не миллиарды записей с кучей ПП и фильтров для выборок на фронте.

А вот трафик, вызывающий нагрузку - это уже отдельная песня.

Ида. Кроме скорости работы с БД другой самой распространённой причиной тормозов сайта является некорректная, ненужная работа на фронтэнде. К примеру во множестве "премиум" тем применяется реалтам ресайз картинок. Эту "фичу" нужно резать на корню! Или тот же не оптимально реализованный рендеринг (свежая болезнь рюшечкофанатов).

Коготь дракона:
периодически возникает ошибка "database connection error" - отваливается mysql, при этом посещаемость сайта достаточно низкая. Это тоже как-то связано с запросами к БД?

Это некорректная работа самой БД на хостинге. Надо с хостером решать.

В инете были скрипты-тестировщики БД. Но запускать их без согласования с хостером не нужно.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
TA
На сайте с 12.06.2009
Offline
116
TiA
#546
SeVlad:
TiA, при всё уважении, но вот тут ты ммм.... некорректно ответил. Вопрос был о скорости работы сайта, а не скорости работы БД (даже не с БД). Да, скорость работы самой БД является одним из фактором, влияющим на скорость сайта. И фактором существенным. Но вопрос был не совсем об этом.

Именно в том абзаце спрашивали о БД :)

А так я с вами полностью согласен, там основная причина медленной работы - не база данных как таковая, а не очень оптимизированный код шаблона и/или дополнений. Об этом косвенно говорит более 400 сотен SELECT-ов на страницу. Их ведь не только запросить из базы данных нужно, а еще и обработать, всякие там объекты на основе тех данных инициализировать.

SeVlad:
Ида. Кроме скорости работы с БД другой самой распространённой причиной тормозов сайта является некорректная, ненужная работа на фронтэнде. К примеру во множестве "премиум" тем применяется реалтам ресайз картинок. Эту "фичу" нужно резать на корню! Или тот же не оптимально реализованный рендеринг (свежая болезнь рюшечкофанатов).

Это да. За ресайз картинок в реальном времени без кеширования вообще расстреливать надо.

Коготь дракона:
Есть тут что-то аномальное?

Да, есть. У вас отключен кеш запросов (query_cache_size = 0). Что это такое и чем грозит можно почитать тут: https://habrahabr.ru/post/41166/

Коготь дракона:
Следует начать с этого?

Можно начать с включения кеша запросов, но в вашем случае это не самая основная проблема.

Я бы начал с включения объектного кеширования. 442 запроса для страницы - это, прямо скажем, много даже для WordPress.

Коготь дракона:
Буду разбираться в чем дело.

Скорее-всего вы не установили какой-то из модулей для реализации кеширования. Это может быть Memcached, APC/APCu, Redis, XCache и прочие.

SeVlad
На сайте с 03.11.2008
Offline
1609
#547
TiA:
Именно в том абзаце спрашивали о БД

Именно о скорости сайта в целом :) А о БД - как возможная часть причины тормозов.

TiA:

Коготь дракона:
2. Влияет ли общий вес БД на скорость работы сайта или скорее [на скорость работы сайта] влияет количество и запутанность связей в БД ?

На скорость работы БД влияет огромное количество факторов.

Ну и дальше объяснения по работе БД. Да, объяснения отличные (тут респект и уважуха!), но лишь косвенно имеющие отношения к вопросу. (Что и подтверждается дальнейшими "изысканиями" ;) )

Но эт лано. Я, сосбно, почему встрял? Я категорически не согласен, что количество записей влияет на скорость (вызывает тормоза). И в данном случае и во множестве других (исключая разве что огромные порталы, и то..). И касается не только ВП. Но это заблуждение постоянно культивируется.

TA
На сайте с 12.06.2009
Offline
116
TiA
#548
SeVlad:
Я категорически не согласен, что количество записей влияет на скорость (вызывает тормоза). И в данном случае и во множестве других (исключая разве что огромные порталы, и то..). И касается не только ВП. Но это заблуждение постоянно культивируется.

Да, действительно, в случае с WP это по большей части справедливо.

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

С другой стороны в любом случае нужно установить плагин для объектного кеширования, многие вещи в WP изначально кешируются на уровне движка. Самый яркий пример - это настройки в wp_options. Woo для их выборки генерирует несколько десятков запросов к БД. Да, они простые, занимают по несколько миллисекунд, но в сумме получается вполне себе ощутимая цифра.

Помимо этого в WP хватает своих тормозов на уровне самого движка. В свое время я его профилировал вдоль и впоперек. Хотел сделать WooCommerce быстрее OpenCart :)

Один из примеров, о котором мало говорят - это загрузка доменов локализации. Они увеличивают время загрузки на 0.050 .. 0.300 секунд. Иными словами, если просто указать в админке английский язык, то скорость сайта увеличивается :) Да, если вместе со страницей грузится еще несколько мегабайт картинок и скриптов, то это вряд ли заметно будет, но если все написано нормально, то прирост очевиден.

Еще один способ кардинально ускорить сайт - это перейти на PHP7.0. Скорость у меня на тестовой машине повышалась раза в 2 - 2.5. К счастью, актуальные версии WP и Woo эту версию более-менее внятно поддерживают.

J
На сайте с 18.10.2010
Offline
46
#549

Ребята, подскажите, пожалуйста, как такое реализовать на вп:

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

TA
На сайте с 12.06.2009
Offline
116
TiA
#550
Jacker:
У меня на сайте рубрики - это регионы, а название статей идут все с названием города из этого региона. Вопрос - как вывести списком в рубрике не полные названия этих статей, а только название города, просто список городов из этого региона. Когда нажмешь на город переходишь на статью где заголовок тот который я задал при публикации статьи. Спасибо.

Вариантов тут несколько:

1) Указывать имена городов в заголовках в едином формате, а потом каким-то образом вырезать их при получении списка записей. Это вариант решения "в лоб";

2) Указать название города через дополнительное поле для записи. Этот вариант удобней, но он будет сильнее нагружать сервер и придется думать над кешированием результатов выборки;

3) Название города можно указывать в поле Цитата. Не самое лучшее решение, но в принципе также вариант;

4) В названии статьи оставить только город, а заголовок на странице записи выводить из доп. поля.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий