Фев 252014
 

Итак, кешируюший плагин работает, однако меня смутило длительное время загрузки, которое показывает, например Pingdom Website Speed Test – 8-11 секунд.  Подкрутил опции кеширования, помогло не сильно. Зато решилась проблема с ИЕ( выставлением опции на снятие куки для статических файлов). По результатам разбора оказалось, что nextgen, плагин для показа графики, даёт сумашедшее количество запросов к базе данных. Например, отображение рубрики “Куклы текстильные” выливается в 1154 запроса к mysql. Смотрим, что это за запросы:

224317 Query SELECT image_slug FROM XXX_ngg_pictures WHERE image_slug = '4-92' AND NOT pid = 0 LIMIT 1
224317 Query SELECT image_slug FROM XXX_ngg_pictures WHERE image_slug = '4-93' AND NOT pid = 0 LIMIT 1
224317 Query SELECT image_slug FROM XXX_ngg_pictures WHERE image_slug = '4-94' AND NOT pid = 0 LIMIT 1

И ещё, вот такие:

224317 Query SELECT bn_3_ngg_gallery.* , `XXX_options`.`option_value` AS 'custom_post_id', GROUP_CONCAT(CONCAT_WS('@@', meta_key, meta_value)) AS 'extras' FROM `XXX_ngg_gallery` LEFT OUTER JOIN `XXX_options` ON `XXX_options`.option_name = CONCAT('XXX_ngg_gallery_', XXX_ngg_gallery.gid) LEFT OUTER JOIN `XXX_postmeta` ON `XXX_postmeta`.`post_id` = `XXX_options`.`option_value` WHERE (`gid` = 52) GROUP BY XXX_ngg_gallery.gid LIMIT 1
224317 Query SELECT XXX_ngg_gallery.* , `XXX_options`.`option_value` AS 'custom_post_id', GROUP_CONCAT(CONCAT_WS('@@', meta_key, meta_value)) AS 'extras' FROM `XXX_ngg_gallery` LEFT OUTER JOIN `XXX_options` ON `XXX_options`.option_name = CONCAT('XXX_ngg_gallery_', XXX_ngg_gallery.gid) LEFT OUTER JOIN `XXX_postmeta` ON `XXX_postmeta`.`post_id` = `XXX_options`.`option_value` WHERE (`gid` = 52) GROUP BY XXX_ngg_gallery.gid LIMIT 1

Что с этим делать – пока не понятно. Что-то мутненькое  написано в changelog для nextgen 2.0.55 beta –   Fixed: Database query performance. No more joins to the WP options table

Я пока грешу на ngg_ajax_rebuild_unique_slugs (на заметку)

Дополнение26.02.2014 – Похоже, разработчики что-то накопали – committed cd416fe – Drastically improves performance by reducing the number of queries generated. Посмотрю, появится ли в обновлении или придётся ручками код править.

Share

  Один комментарий в “битва за быстродействие. Часть вторая.”

  1. […] к MySQL резко уменьшилось. Замер той же страницы (предыдущая статья) даёт уже не 1154 запроса, а  229. И время генерации […]