Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #30 : 14.04.2010, 00:19:11 »
Обоснуйте в чём глупость?
в не эффективности выполнения.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #31 : 14.04.2010, 00:38:48 »
в не эффективности выполнения.
Это запрос действительно выглядит громоздко, однако это единственно верный способ решить данную задачу. В своей практике использовал подобное решение для организации произвольного количества полей у сущности в системе документооборота на промышленном предприятии. При этом всё работало отлично.
Я так и думал, что оснований нет, поэтому либо забирайте свои оскорбления в зад, либо предоставьте верное (с вашей точки зрения) решение и протестируем оба на оптимальность и скорость выполнения.
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #32 : 14.04.2010, 00:45:05 »
2 atlantech: не совсем понял... мне ж из дополнительной таблицы нужно поля выбрать по определенному условию. WHERE в одном запросе 4 раза не прокатит...
Для этого и нужны джоины - по количеству условий, просто в условие ON  добавляешь, кроме соединения по айдишнику ещё и нужный тебе фильтр на тип значения....
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #33 : 14.04.2010, 00:49:41 »
Это запрос действительно выглядит громоздко, однако это единственно верный способ решить данную задачу. В своей практике использовал подобное решение для организации произвольного количества полей у сущности в системе документооборота на промышленном предприятии. При этом всё работало отлично.
Я так и думал, что оснований нет, поэтому либо забирайте свои оскорбления в зад, либо предоставьте верное (с вашей точки зрения) решение и протестируем оба на оптимальность и скорость выполнения.
В ярости заявил, что единственное решение забыв, что ещё можно сделать это юнионами, но суть там такая же в итоге надо будет группировать по всем полям основной и агрегировать поля второй таблицы.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #34 : 14.04.2010, 01:34:19 »
однако это единственно верный способ решить данную задачу.
нет

Я так и думал, что оснований нет, поэтому либо забирайте свои оскорбления в зад, либо предоставьте верное (с вашей точки зрения) решение ..
с какой стати?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #35 : 14.04.2010, 14:11:18 »
нет
с какой стати?
Стой стати, что без подтверждения ваше утверждение - безосновательный трёп.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #36 : 14.04.2010, 21:00:42 »
ваше то же ;D
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #37 : 15.04.2010, 11:46:45 »
автору поста.
1. не слушай советов того мужика в очках, он явно не шарящий.
2. Объясни что делается вот в этом запросе -

INSERT INTO loc (id, loc) SELECT record_id, field_value FROM jos_js_res_record_values WHERE field_id IN (10,48);

просто, если у тебя для какой либо записи в таблице значений будет и значение поля с типом 10 и значение с типом 48, то в последней выборке у тебя строка для этой записи будет задвоена, тебе так и надо, или это ошибка, или значения с этими типами не пересекаются?
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #38 : 16.04.2010, 01:12:38 »
в этом запросе выбираются из таблицы записи с типами полей 10 и 48 соответственно, для вставки во временную таблицу, в двух аналогичных тоже самое, но с иными типами полей
все записи в таблице уникальны, поэтому группировка ни к чему

попробую на пальцах объяснить что за таблицы имеются
1 - обычная таблицы со статьями, где есть ID, название и тп..
2 - таблица со значениями дополнительных полей для статей, где есть ID (тип) поля (значения определенного типа - field_id ), собственно значение поля (некий текст) и ID статьи, к которой данное значение принадлежит (ну id записей этой таблицы, но он не нужен).
то есть:
тип поля-------значение---------id записи
10-----описание-------1
22-----картинка-------1
33------ссылка---------1
10-----описание-------2
22-----картинка-------2
33------ссылка---------2
10-----описание-------3
22-----картинка-------3
33------ссылка---------3

ну и так далее )
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #39 : 16.04.2010, 11:30:33 »
Это я так и понял. Про группировку я, видно, не очень доходчиво объяснил... в понедельник нарисую запрос, а то я в запарке - в субботу свадьба)...
Смотри, к примеру у тебя в таблице значений есть записи:
10 -------- зелёный привкус -------- 1
48 -------- кривая ручка      -------- 1
3  -------- высокая твёрдость ------- 1

а в главной таблице у тебя запись
1 ------  описание сыра

то результатом твоих запросов будут две записи:
описание сыра ------ зелёный привкус -------- высокая твёрдость
описание сыра ------ кривая ручка -------- высокая твёрдость

это ошибка, или ты так и хотел?
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #40 : 16.04.2010, 17:03:30 »
оо! какое событие ) вот после субботы и поздравим)

не совсем точный пример дал, в данном случае 10 - это дополнительные описания для сыра, а 48 будет то же описание но уже для колбасы )

лучше напишу на своем примере:
есть 2 типа статей : достопримечательности и города
все записи хранятся в 1 таблице, где есть id записи и название
в другой таблице есть для этих записей поля: описание, картинка и координаты
у координат достопримечательностей id - 10, городов 48
у описаний 3 и 33
у картинок 47 и 49
соответственно отсюда и 3 временные таблицы. в первую вставляем для всех записей координаты, во 2ю описания, в 3ю картинки и потом все это джойним к основной таблице

вот как-то так )

Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #41 : 20.04.2010, 02:47:24 »
Фуфф, отгуляли ))))
Я так и понял, это то что я назвал раннее в своём посте "не пересекаются".
Привожу простой вариант того, что я имел ввиду, здесь у меня аналогичные твоим таблицы и в запросе я выворачиваю в строку два значения:
описание таблиц:
Код: sql
CREATE TABLE records(
  id INTEGER (11) DEFAULT NULL,
  article VARCHAR (20) DEFAULT NULL
)
CREATE TABLE `values`(
  record_id INT (11) DEFAULT NULL,
  value_type INT (11) DEFAULT NULL,
  value VARCHAR (20) DEFAULT NULL
)

тестовые данные:
Код: sql
INSERT INTO records VALUES (0, 'about sun');
INSERT INTO records VALUES (1, 'about water');
INSERT INTO records VALUES (2, 'about earth')

INSERT INTO `values` VALUES (0, 1, 'gray');
INSERT INTO `values` VALUES (1, 1, 'red');
INSERT INTO `values` VALUES (2, 1, 'green');
INSERT INTO `values` VALUES (0, 2, 'thin');
INSERT INTO `values` VALUES (1, 2, 'toll');
INSERT INTO `values` VALUES (2, 2, 'fat');
сам запрос :
Код: sql
SELECT
  r.article, max(v.value) as color, max(v2.value) as `geometry`
FROM
  records r
  LEFT JOIN `values` v ON (v.record_id = r.id) && (v.value_type = 1)
  LEFT JOIN `values` v2 ON (v2.record_id = r.id) && (v2.value_type = 2)
GROUP BY r.article;

Думаю идея понятна, смасштабировать на твой конкретный случай проблем не составит.
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #42 : 20.04.2010, 20:26:29 »
atlantech, поздравляю с началом семейной жизни, долгих счастливых лет! :)

а по теме...
огромное спасибо, в принципе работает, осталось для себя уяснить как работает max
+ получается очень компактненько...

однако !
запрос выполняется почти в 2 раза дольше чем мой вариант с созданием 3х временных таблиц (0.0280 против 0.0160)..., а записей всего 30, а должно быть тысячи :)

думаю надо подождать что предложат афтары компонента )

з.ы.
что интересно, попробовал CREATE SELECT еще - работает медленнее чем просто CREATE и следующей строкой INSERT SELECT, хотя казалось-бы...
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #43 : 21.04.2010, 00:01:00 »
Привет. Спасибо ;)
Скорее тебе надо разбираться в работе group by  в совокупности с агрегатными функциями.
Думаю просто какая-то ошибка в измерениях (например ваша система показывает время выполнения только для последнего запроса из серии, что кстати и объясняет ваш парадокс с криэйт сэлектом)
если можно, хотелось бы увидеть дамп вашей базы с данными и измеряемыми запросами.
*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #44 : 21.04.2010, 23:36:40 »
исследование производительности запросов

запрос с временными таблицами
-----------------------------------
Код: sql
USE testground;

CREATE TEMPORARY TABLE tmp_values(
  id INT (11) NOT NULL,
  `value` VARCHAR (20)
);
INSERT
INTO tmp_values (id, `value`)
SELECT
  record_id, `value`
FROM
  `values`
WHERE
  value_type = 1;

CREATE TEMPORARY TABLE tmp_values2(
  id INT (11) NOT NULL,
  `value` VARCHAR (20)
);
INSERT
INTO tmp_values2 (id, `value`)
SELECT
  record_id, `value`
FROM
  `values`
WHERE
  value_type = 2;

SELECT
  r.id, r.article, v.`value`, v2.`value`
FROM
  records r
  LEFT JOIN tmp_values v ON v.id = r.id
  LEFT JOIN tmp_values2 v2 ON v2.id = r.id

------------------------------------

Выполнение завершено успешно [< 0,001c]
Выполнение завершено успешно [0,070c]
36 Строки вставлена [0,002c]
Выполнение завершено успешно [0,069c]
36 Строки вставлена [0,001c]
Запрос открыт за 0,002c [0,001c выполнение, 0,001c выборка]

здесь первый запрос - подключение базы, его игнорируем, остальное складываем и получаем:

0.144 с

-------------------------------------

запрос с группировкой
-------------------------------------

Код: sql
use testground
SELECT
  r.id, r.article, MAX(v.value) AS color, MAX(v2.value) AS `geometry`
FROM
  records r
  LEFT JOIN `values` v ON (v.record_id = r.id) && (v.value_type = 1)
  LEFT JOIN `values` v2 ON (v2.record_id = r.id) && (v2.value_type = 2)
GROUP BY
  r.id, r.article;

-------------------------------------
Выполнение завершено успешно [0,001c]
Запрос открыт за 0,004c [0,003c выполнение, 0,001c выборка]

здесь первый запрос - подключение базы, его игнорируем

0.004 с

Тестирование проводилось на 40 записях в основной таблице и 72 записей в таблице значений, ниже приведён дамп данных :

Код: sql
INSERT INTO records VALUES (0, 'about sun');
INSERT INTO records VALUES (1, 'about water');
INSERT INTO records VALUES (2, 'about earth');
INSERT INTO records VALUES (3, 'test');
INSERT INTO records VALUES (4, 'test');
INSERT INTO records VALUES (5, 'test');
INSERT INTO records VALUES (6, 'test');
INSERT INTO records VALUES (7, 'test');
INSERT INTO records VALUES (8, 'test');
INSERT INTO records VALUES (9, 'test');
INSERT INTO records VALUES (10, 'test');
INSERT INTO records VALUES (11, 'about water');
INSERT INTO records VALUES (12, 'about earth');
INSERT INTO records VALUES (13, 'test');
INSERT INTO records VALUES (14, 'test');
INSERT INTO records VALUES (15, 'test');
INSERT INTO records VALUES (16, 'test');
INSERT INTO records VALUES (17, 'test');
INSERT INTO records VALUES (18, 'test');
INSERT INTO records VALUES (19, 'test');
INSERT INTO records VALUES (21, 'about water');
INSERT INTO records VALUES (22, 'about earth');
INSERT INTO records VALUES (23, 'test');
INSERT INTO records VALUES (24, 'test');
INSERT INTO records VALUES (25, 'test');
INSERT INTO records VALUES (26, 'test');
INSERT INTO records VALUES (27, 'test');
INSERT INTO records VALUES (28, 'test');
INSERT INTO records VALUES (29, 'test');
INSERT INTO records VALUES (20, 'about sun');
INSERT INTO records VALUES (31, 'about water');
INSERT INTO records VALUES (32, 'about earth');
INSERT INTO records VALUES (33, 'test');
INSERT INTO records VALUES (34, 'test');
INSERT INTO records VALUES (35, 'test');
INSERT INTO records VALUES (36, 'test');
INSERT INTO records VALUES (37, 'test');
INSERT INTO records VALUES (38, 'test');
INSERT INTO records VALUES (39, 'test');
INSERT INTO records VALUES (30, 'about sun');

INSERT INTO `values` VALUES (1, 1, 'red');
INSERT INTO `values` VALUES (2, 1, 'green');
INSERT INTO `values` VALUES (0, 1, 'thin');
INSERT INTO `values` VALUES (1, 2, 'toll');
INSERT INTO `values` VALUES (39, 2, 'fhgh');
INSERT INTO `values` VALUES (38, 2, 'casdfrer,kjj');
INSERT INTO `values` VALUES (28, 2, 'ddd');
INSERT INTO `values` VALUES (20, 2, 'xxxxx');
INSERT INTO `values` VALUES (19, 2, 'zzzzzz');
INSERT INTO `values` VALUES (0, 2, 'red');
INSERT INTO `values` VALUES (29, 2, 'dcsdfc');
INSERT INTO `values` VALUES (4, 2, 'esde');
INSERT INTO `values` VALUES (5, 1, 'fdf');
INSERT INTO `values` VALUES (5, 2, 'fdvxcz');
INSERT INTO `values` VALUES (19, 1, 'dsf');
INSERT INTO `values` VALUES (6, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (7, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (17, 2, 'xcdsw');
INSERT INTO `values` VALUES (8, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (8, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (10, 2, 'red');
INSERT INTO `values` VALUES (11, 1, 'green');
INSERT INTO `values` VALUES (11, 2, 'thin');
INSERT INTO `values` VALUES (12, 1, 'toll');
INSERT INTO `values` VALUES (12, 2, 'fat');
INSERT INTO `values` VALUES (13, 1, 'c');
INSERT INTO `values` VALUES (13, 2, 'x');
INSERT INTO `values` VALUES (14, 1, 'cvxc');
INSERT INTO `values` VALUES (14, 2, 'esde');
INSERT INTO `values` VALUES (15, 1, 'fdf');
INSERT INTO `values` VALUES (15, 2, 'fdvxcz');
INSERT INTO `values` VALUES (16, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (16, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (17, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (10, 1, 's');
INSERT INTO `values` VALUES (18, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (18, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (20, 1, 'red');
INSERT INTO `values` VALUES (21, 1, 'green');
INSERT INTO `values` VALUES (21, 2, 'thin');
INSERT INTO `values` VALUES (22, 1, 'toll');
INSERT INTO `values` VALUES (22, 2, 'fat');
INSERT INTO `values` VALUES (23, 1, 'c');
INSERT INTO `values` VALUES (23, 2, 'x');
INSERT INTO `values` VALUES (24, 1, 'cvxc');
INSERT INTO `values` VALUES (24, 2, 'esde');
INSERT INTO `values` VALUES (25, 1, 'fdf');
INSERT INTO `values` VALUES (25, 2, 'fdvxcz');
INSERT INTO `values` VALUES (26, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (26, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (27, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (27, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (28, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (29, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (30, 1, 'gray');
INSERT INTO `values` VALUES (30, 2, 'red');
INSERT INTO `values` VALUES (31, 1, 'green');
INSERT INTO `values` VALUES (31, 2, 'thin');
INSERT INTO `values` VALUES (32, 1, 'toll');
INSERT INTO `values` VALUES (32, 2, 'fat');
INSERT INTO `values` VALUES (33, 1, 'c');
INSERT INTO `values` VALUES (33, 2, 'x');
INSERT INTO `values` VALUES (34, 1, 'cvxc');
INSERT INTO `values` VALUES (34, 2, 'esde');
INSERT INTO `values` VALUES (35, 1, 'fdf');
INSERT INTO `values` VALUES (35, 2, 'fdvxcz');
INSERT INTO `values` VALUES (36, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (36, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (37, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (37, 2, 'dsadf.skamd');
INSERT INTO `values` VALUES (38, 1, 'dsadf.skamd');
INSERT INTO `values` VALUES (39, 1, 'dsadf.skamd');

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

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



*

atlantech

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Несколько запросов в $db->setQuery. Как ?
« Ответ #45 : 27.04.2010, 04:22:15 »
Ещё один момент услыхал... по умолчанию временная таблица будет создаваться как myisam, при этом до определенного объёма она будет храниться в памяти а потом сбросится на диск, что приведёт ещё большему падению производительности. Вроде как тип таблицы MEMORY держится в оперативке, но там есть какие-то ограничения, честно не вникал, просто пишу для тех кому надо, чтоб обратили на это внимание.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Оптимизировать кол-во запросов

Автор Mick_20

Ответов: 21
Просмотров: 1408
Последний ответ 27.01.2014, 19:16:20
от Mick_20