Новости Joomla

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

👩‍💻 v.2.6.1. Что нового?
- Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
- Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
- Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
- Рефакторинг и правки кода. Текущее обновление кодовой базы.
- Исправление ошибок.

👩‍💻 Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

- Страница расширения
- GitHub расширения
- Joomla Extensions Directory

@joomlafeed

Событие Pizza, Bugs & Fun - 29-30 января 2026 года.

Событие Pizza, Bugs & Fun  - 29-30  января 2026 года.

Уже несколько лет в мире Joomla проводятся мероприятия "Pizza, Bugs & Fun" (#PBF), где каждый может посвятить несколько часов своего мозгового времени тому, чтобы наша любимая CMS стала ближе к идеалу.

Ссылки на видео и статьи из этого поста рассказывает об организационных вопросах, которые пригодятся для участия в PBF, а так же что и как делать.

В рамках события PBF все желающие могут собираться в общий онлайн чат, обсудить вопросы Joomla и приложить к их разрешению свою руку. Самый классный вариант, когда эта встреча происходит оффлайн: тогда организовывается пицца, напитки по вкусу и несколько часов совместного творчества.

Каждый помогает тем, что он умеет:

  • кто-то пишет недостающую документацию,
  • кто-то пишет код,
  • кто-то тестирует как исправлены ошибки или сделан новый функционал.

На сайте события есть карта, можно "захостить" свою локацию. Практически все движки в мире развиваются за счёт спонсирующих их компаний. Joomla одна из немногих, где развитие идёт только усилиями международного сообщества энтузиастов.

https://www.youtube.com/watch?v=a-FuVKXg_Uw 

На момент написания данного поста в репозитории Joomla 810 открытых Issue (как правило это баги) и 236 Pull request (PR, исправление багов и новый функционал). Все PR обязательно тестируются минимум двумя участниками сообщества, дабы в конечный код движка не проскочила ошибка.

Если каждый из участников только нашего сообщества сделает даже одно тестирование, то, боюсь, PR и Issue на всех не хватит 😀 И ничего не останется нашим коллегам из международных Joomla-чатов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 113 Ответов
  • 5619 Просмотров
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Таких запросов в день до 1000. Сильно нагружают базу данных.

Вот скрины (кому не удобно читать ниже текст):
1) Сам запрос -
2) План запроса - 
3) Профилирование -

Время запроса: 13277.17 ms Память запроса: 0.021 MB Выбрано строк: 27


Код: sql
SELECT c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version,
  CASE WHEN CHAR_LENGTH(c.alias)!= 0 THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END as slug,COUNT(i.`id`) AS numitems

  FROM mqpn1_categories as c

  LEFT JOIN  (SELECT cat.id as id
  FROM mqpn1_categories AS cat JOIN mqpn1_categories AS parent
  ON cat.lft BETWEEN parent.lft
  AND parent.rgt
  WHERE parent.extension = 'com_content'
  AND parent.published != 1
  GROUP BY cat.id) AS badcats
  ON badcats.id = c.id

  LEFT JOIN `mqpn1_content` AS i
  ON i.`catid` = c.id
  AND i.state = 1

  WHERE (c.extension='com_content' OR c.extension='system')
  AND c.access IN (1,1,5)
  AND c.published = 1
  AND badcats.id is null

  GROUP BY c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version

  ORDER BY c.lft

Код
План SQL-запросов (Explain)

id  select_type   table       type  possible_keys         key                        key_len   ref      rows    Extra
1   PRIMARY    <derived2>  system             NULL          Индекс не используется         NULL NULL  0 const row not found
1   PRIMARY c       ALL  cat_idx,idx_access    Индекс не используется        NULL NULL 30   Using where; Using temporary; Используется filesort
1   PRIMARY i       ref  idx_state,idx_catid   idx_state                   1 const    12810
2   DERIVED    parent        range      cat_idx,idx_left_right   cat_idx                 153 NULL      2      Using where; Using temporary; Используется filesort
2   DERIVED    cat     index     idx_left_right           idx_left_right           8     NULL     30     Using where; Using index; Using join buffer



Профилирование SQL-запросов
Status   Duration
starting   0.54 ms
checking permissions   0.01 ms
checking permissions   0.01 ms
checking permissions   0.01 ms
checking permissions   0.01 ms
Opening tables   0.09 ms
System lock   0.35 ms
optimizing   0.04 ms
statistics   0.26 ms
preparing   0.05 ms
Creating tmp table   0.09 ms
executing   0.01 ms
Copying to tmp table   0.15 ms
Sorting result   0.03 ms
Sending data   0.01 ms
removing tmp table   0.02 ms
Sending data   0.01 ms
init   0.24 ms
optimizing   0.04 ms
statistics   0.42 ms
preparing   0.09 ms
Creating tmp table   6.78 ms
executing   0.04 ms
Copying to tmp table   13261.10 ms



« Последнее редактирование: 08.09.2016, 15:02:10 от HumanVW »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #1 : 08.09.2016, 13:14:47 »
Запрос конечно совершенно неоптимизированный. Joomla разочаровывает. Однако у меня он не настолько тормозной. У вас 13 секунд уходит на копирование данных во временную таблицу.
Попробуйте поигратся с настройками tmp_table_size и max_heap_table_size. Если памяти для временной таблицы не хватает он пишет данные на диск. Посмотрите какой у него размер вообще:

http://dev.mysql.com/doc/refman/5.5/en/internal-temporary-tables.html
интернет-блог: http://websiteprog.ru
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #2 : 08.09.2016, 13:22:43 »
Запрос конечно совершенно неоптимизированный. Joomla разочаровывает. Однако у меня он не настолько тормозной. У вас 13 секунд уходит на копирование данных во временную таблицу.
Попробуйте поигратся с настройками tmp_table_size и max_heap_table_size. Если памяти для временной таблицы не хватает он пишет данные на диск. Посмотрите какой у него размер вообще:

http://dev.mysql.com/doc/refman/5.5/en/internal-temporary-tables.html

Увеличил  tmp_table_size и max_heap_table_size по 256 Мб - ничего не изменилось. Размер самой базы - 54 МБ

Это я на денвере тестирую . На сервере такой запрос выполняется за 3-6 секунд.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #3 : 08.09.2016, 13:25:01 »
Это я на денвере тестирую
Пора наверно уже в правилах запрещать этого динозавра!
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #4 : 08.09.2016, 13:30:07 »
Пора наверно уже в правилах запрещать этого динозавра!

Да, но в данном вопросе это роли не играет. Такой запрос везде будет долго выполняться ибо Joomla сканирует всю базу (27 000 материалов).
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #5 : 08.09.2016, 13:43:50 »
(27 000 материалов).
А в первом посте почему не написали?
Запрос этот где формируется?
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #6 : 08.09.2016, 13:47:27 »
А в первом посте почему не написали?
Запрос этот где формируется?

В категории "Шаблон списка материалов" и при 404 ошибке.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #7 : 08.09.2016, 13:49:21 »
27 000 материалов и такой запрос, ничего удивительного. Если запрос обязательный для com_content, придется от него отказаться. Хотя там выборка в основном категорий идет. А категорий много?
интернет-блог: http://websiteprog.ru
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #8 : 08.09.2016, 14:05:02 »
Если запрос обязательный для com_content, придется от него отказаться. 
Создать новый, или без него работать ?

Хотя там выборка в основном категорий идет. А категорий много?

Этот запрос сканирует все категории (таблица_category - 27) и все материалы (таблица_content - 27 000). А выводит в итоге 27 категорий.(Это при 404 ошибке) Rows_sent: 27  Rows_examined: 27000

Запрос на "Шаблоне списка категории" - Rows_sent: 2  Rows_examined: 27000



*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #9 : 08.09.2016, 14:32:00 »
Создать новый, или без него работать ?

Ну можно просто отказаться от шаблона списка категорий. Вместо него написать модуль или компонент который будет категории выводить из com_content. Тот же запрос без сортировки пробовали выполнять?

Цитировать
Rows_examined: 27000

Я вот не пойму зачем вообще все 27000 строк перебирать если в запросе только количество материалов выбирается
« Последнее редактирование: 08.09.2016, 14:35:51 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #10 : 08.09.2016, 14:36:44 »
Временные таблицы в оперативки сделайте, если её достаточно.

Кэширование запросов сделайте, чтобы одно и то-же по сто раз не пересчитывало:
Цитировать
query_cache_size= 128M
query_cache_limit=2M
query_cache_type=1

Ещё попробуйте увеличить join_buffer_size
join_buffer_size = 16M

Цитировать
Ну можно просто отказаться от шаблона списка категорий. Вместо него написать модуль или компонент который будет категории выводить из com_content.
Там есть нюансы, если много категорий и подкатегорий материалов, то в настройках вывода желательно указывать конкретные категории, а подкатегории отключать, чтобы лишних переборов не было.
« Последнее редактирование: 08.09.2016, 14:42:37 от ChaosHead »
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #11 : 08.09.2016, 14:39:28 »
Ну можно просто отказаться от шаблона списка категорий. Вместо него написать модуль или компонент который будет категории выводить из com_content. Тот же запрос без сортировки пробовали выполнять?

А смысл без сортировки . Ведь Copying to tmp table   13261.10 ms.
Я вот не пойму зачем вообще все 27000 строк перебирать если в запросе только количество материалов выбирается

Это Joomla 3.6.2
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #12 : 08.09.2016, 14:42:15 »
Там все равно запрос жуткий. Разработчиком бы стоило его оптимизировать. Using temporary; Используется filesort - тут какбы надо что то решать с сортировкой и группировкой.  Rows_sent: 2 Rows_examined: 27000 - 27000 строк перебрать чтобы только 2 выбрать какбы тоже не айс, какие то лимиты может имеет смысл добавить в запрос. Хотя он вобще их не должен перебирать он должен только подсчитать кол-во.
« Последнее редактирование: 08.09.2016, 14:51:31 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #13 : 08.09.2016, 14:44:30 »
Временные таблицы в оперативки сделайте, если её достаточно.

Кэширование запросов сделайте, чтобы одно и то-же по сто раз не пересчитывало:Там есть нюансы, если много категорий и подкатегорий материалов, то в настройках вывода желательно указывать конкретные категории, а подкатегории отключать, чтобы лишних переборов не было.

Кеш включен, но такой запрос на долго не кеширует, так как его часто запрашивают с разных адресов. когда не может найти материал - выдается этот запрос в базу и полностью её сканирует, затем выдает 404 ошибку.  ОЗУ - 8ГБ

Под категорий нет. Везде указана конктерная категория.
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #14 : 08.09.2016, 14:48:26 »
Цитировать
Кеш включен, но такой запрос на долго не кеширует, так как его часто запрашивают с разных адресов.
Кэш запросов MySQL, если вы на своём VDS, а не кэш страниц в Joomla. MySQL запомнит результат запроса и если не было изменений в базе данных (не редактировали ничего в этих таблицах), то будет сразу выдавать готовый ответ. Это ускорит соответсвенно и другие запросы. Но это конечно не решение проблемы.
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #15 : 08.09.2016, 14:51:30 »
Кэш запросов MySQL, если вы на своём VDS, а не кэш страниц в Joomla. MySQL запомнит результат запроса и если не было изменений в базе данных (не редактировали ничего в этих таблицах), то будет сразу выдавать готовый ответ. Это ускорит соответсвенно и другие запросы.
Все включено, Сайт на физическом выделенном сервере с выделенным каналом.

query_cache_size = 148M
query_cache_limit = 4M
query_cache_type = 1

Он их незапоминает на долго!
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #16 : 08.09.2016, 14:53:12 »
join_buffer_size = 16M не помогло.
 Проблема в том что полностью сканирует базу, чтобы вывести 2 (в шаблоне списка материалов) или при 404 (27).
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #17 : 08.09.2016, 14:57:13 »
Там похоже еще для каждой категории идет выборка из 27000 материалов чтобы только их кол-во подсчитать в этой категории. Видимо поэтому он такой тормозной + сортировка с группировкой.
интернет-блог: http://websiteprog.ru
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #18 : 08.09.2016, 15:02:20 »
Вот скрины кому не удобно читать текст:
1) Сам запрос -
2) План запроса -  http://picua.org/img/2016-09/08/bcr6kmyb8d8dxuqthz2edvrly.png
3) Профилирование -
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #19 : 08.09.2016, 15:05:41 »
На 4500 материалов он у меня отрабатывает моментально и в tmp не копирует. Может всё такие не в денвере попробовать, а в OpenServer на MySQL 5.6?
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #20 : 08.09.2016, 15:08:54 »
На 4500 материалов он у меня отрабатывает моментально и в tmp не копирует. Может всё такие не в денвере попробовать, а в OpenServer на MySQL 5.6?
На сервере он грузится 3-6 секунд.
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #21 : 08.09.2016, 15:11:36 »
Если кто хочет увидеть у себя этот запрос, могу написать как его найти.
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #22 : 08.09.2016, 15:20:02 »
Пишите, я его увидел, сделав пункт меню на список материалов категории. Интересно, будет ли у людей он писать в tmp.

Подозреваю, что что-то нужно тюнить в MySQL под большое количество материалов, чтобы этот запрос не использовал временную таблицу.
Возможно буферы
key_buffer_size = 256M
sort_buffer_size = 32M
read_buffer_size = 16M
read_rnd_buffer_size = 16M
join_buffer_size = 16M

innodb_buffer_pool_size = 3072M #должен быть более общего размера всех таблиц innodb
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #23 : 08.09.2016, 15:29:13 »
У меня на локалке с 3 материалами:

Using where; Using temporary; Using filesort
Using where
Using where; Using join buffer (flat, BNL join)
Using index condition; Using temporary; Using file..
Using where; Using index; Using join buffer (flat,...

Временная таблица используется дважды. Все причины по которым она может использоваться описаны здесь:

http://dev.mysql.com/doc/refman/5.5/en/internal-temporary-tables.html

В данном случае я думаю что это из-за сочетания orderBy и groupBy в запросе.
интернет-блог: http://websiteprog.ru
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #24 : 08.09.2016, 15:31:50 »
Пишите, я его увидел, сделав пункт меню на список материалов категории. Интересно, будет ли у людей он писать в tmp.

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

Подозреваю, что что-то нужно тюнить в MySQL под большое количество материалов, чтобы этот запрос не использовал временную таблицу.
Возможно буферы
key_buffer_size = 256M
sort_buffer_size = 32M
read_buffer_size = 16M
read_rnd_buffer_size = 16M
join_buffer_size = 16M

innodb_buffer_pool_size = 3072M #должен быть более общего размера всех таблиц innodb

Непомогло.
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #25 : 08.09.2016, 15:36:58 »
ЧТобы увидеть этот запрос (Должен быть создан пункт меню категория (не главную), его и меняйте):

1) Зайдите в базу данных сайта и затем в таблицу вашсуффикс_menu и выберите там ваш пункт меню "список категории", откройте его и в поле link изменить "index.php?option=com_content&view=category..." на слово из поле alias.

Теперь откройте этот сайт и допишите слово из поле alias (в админке сайта включить откладка в общих настройках + плагин) и вы увидите этот запрос + его результат.
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #26 : 08.09.2016, 15:43:27 »
Хорошо попробовал конкретно этот запрос в phpMyAdmin. mqpn1 заменил на свой префикс таблиц.
Запрос занял 0.1087 сек. Умножить на 5, т.к. у вас в 5 раз больше материалов, но это далеко до 6 секунд.
Повторный такой-же запрос занимает 0.0004 сек, т.к. уже закэшировался в MySQL пока не изменишь какой-то материал.
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #27 : 08.09.2016, 15:45:12 »
Хорошо попробовал конкретно этот запрос в phpMyAdmin. mqpn1 заменил на свой префикс таблиц.
Запрос занял 0.1087 сек. Умножте на 5, т.к. у вас в 5 раз больше материалов.
Повторный такой-же запрос занимает 0.0004 сек, т.к. уже закэшировался в MySQL
Это на ПК, Вы попробуйте это на реальном сервере сделать. Если бы все было так просто, я бы не писал здесь!
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #28 : 08.09.2016, 15:48:45 »
Это на реальном рабочем сервере. 1 ядро процессора, 8гб оперативки, Debian, PHP 5.6, Mqsql 5.6
на этом сайте материалов около 100000, но большинство архивных. Таблица content - 173MB

Вот конфиг MySQL
Спойлер
[свернуть]
*

HumanVW

  • Захожу иногда
  • 64
  • 1 / 0
Re: Медленный SQL запрос на Joomla 3.6.2
« Ответ #29 : 08.09.2016, 15:50:43 »
Тогда ОК. У меня он кешируется на 1-2 минуты. Затем опять 3 сек.


У вас Joomla 3.6.2 ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка Missing field in database: Joomla\CMS\Table\Extension &#160; extension_id

Автор Ragivort

Ответов: 1
Просмотров: 562
Последний ответ 25.12.2025, 21:10:01
от fbr
Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 11
Просмотров: 5326
Последний ответ 05.06.2025, 04:48:29
от andrey222
По поводу сессий Joomla 3

Автор azm1n

Ответов: 0
Просмотров: 1589
Последний ответ 25.05.2025, 09:26:17
от azm1n
Стоит ли ставить плагин rel="canonical" на Joomla 3

Автор azm1n

Ответов: 2
Просмотров: 1990
Последний ответ 09.05.2025, 12:39:18
от azm1n
Вывести поля профиля Joomla

Автор romagromov

Ответов: 11
Просмотров: 3227
Последний ответ 28.04.2025, 10:25:44
от sivers