Каталог товаров
Каталог статей
|
Соседние продукты - нерационально до крайности
На главной странице 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)
- Добавить отзыв
|