Почему при разных видах запроса к БД ModX возникает разница времени формирования страниц?

317
26 ноября 2016, 20:19

Вывожу цифры в ModX Revo (вставлено в низ шаблона):

MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document from [^s^]

Код сниппета - 1 вариант (вывод 32 строк по 5 ячеек из БД):

$query = $modx->query($sql); while ($i= $query->fetch(PDO::FETCH_ASSOC)) {блабла}

Смотрю цифры:

MySQL: 0.4114 s, 32 request(s), PHP: 0.1472 s, total: 0.5586 s, document from database

MySQL: 0.3293 s, 3 request(s), PHP: 0.0904 s, total: 0.4197 s, document from cache

Код сниппета - 2 вариант :

$query = $modx->prepare($sql); $query->execute(); while ($i= $query->fetch(PDO::FETCH_ASSOC)) {блабла}

Смотрю цифры:

MySQL: 0.0098 s, 31 request(s), PHP: 0.5625 s, total: 0.5722 s, document from database
MySQL: 0.0005 s, 2 request(s), PHP: 0.4296 s, total: 0.4301 s, document from cache

Как так? Общее время формирования страницы по сути одно и тоже, но вариации в составляющих.. Какой же способ выбрать?

UPD.
Версия ModX Revo.
Вывод из кастомной таблицы.
Запрос: SELECT text, link FROM custom_table WHERE order_id>0
Зачем? На сайте большая посещаемость, для каждого посетителя должен будет осуществляться данный запрос, кеш не возможен, так как данные в таблице обновляются каждые 5-10 минут. Делать кеш на 10 минут? Возможно))) То есть при большой нагрузке что-то будет более тонким или PHP Или MySQL.

Answer 1

Судя по общему таймингу страницы, разное время на выполнение запроса - это просто какой-то дефект измерения, а не фактическая разница. Код, состоящий из prepare и execute делает ровно то же самое, что и простой вызов query (если, конечно подготовленное выражение не используется повторно, чего нет в этом примере).

READ ALSO
Как вывести из БД на сайт русские буквы

Как вывести из БД на сайт русские буквы

Вывожу тип товара который выложил пользователь с таблицы table_productsВ таблице table_products есть столбец name(там все категории на английском языке)...

301
Как вывести sql запрос в WP?

Как вывести sql запрос в WP?

Небходимо в файле pagephp вывести результаты по запросу:

288
MariaDB/MySQL: улучшение SQL-запроса

MariaDB/MySQL: улучшение SQL-запроса

В оптимизации одного из подзапросов я дошел до такого состояния:

240
Выполнение транзакций MySQL

Выполнение транзакций MySQL

Почему при выполнении транзакции с запросом с ошибкой коммит всё равно срабатывает для запросов, выполненных успешно? Например, при попытке...

263