camo-mania
Программные разработки для CMS Simpla, расширяющие и изменяющие стандартный функционал системы.

Каталог товаров

Каталог статей

Соседние продукты - нерационально до крайности

На главной странице http://simplacms.ru/ сайта Simpla сказано "Все запросы к базе оптимизированы, на большинстве страниц магазина используется не более десяти SQL-запросов". Посмотрим, так ли это на самом деле...

В карточке товара показываются ссылки на предыдущий и следующий товары относительно текущего. Для их формирования в api/Products.php используются две функции get_prev_product и get_next_product. Вызываются они только в одном месте в view/ProductView.php последовательно друг за другом.

Каждая из функций делает 4 запроса к базе. Причем первые два запроса ПОЛНОСТЬЮ идентичны.

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

Если посмотреть более пристально, то можно обнаружить, что без первого запроса вообще можно было бы обойтись - информацию о position, которую он дает, имелась в наличии еще до вызова функций get_prev_product и get_next_product, достаточно лишь передать в функцию дополнительный параметр.

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

Существенна ли такая экономия? Судите сами - карточка товара требует при формировании примерно 30 запросов, то есть выходит экономия порядка 12%.


  • Отзывы (0)
  • Добавить отзыв

Отзывы:

© 2018 simpla-tuning.com