Данная статья будет интересна в первую очередь тем, кто пользуется НетКат .
Однако эта информация может быть интересна и другим разработчикам.
Потому что во многом это относится и к другим системам.
Итак, недавно мне пришлось разобраться, почему сайт, разработанный на NetCat, стал медленно работать.
В процессе выяснилось, что для формирования главной страницы, ~150 запросов к базе данных ! Я сначала не поверил своим глазам, а потом ужаснулся.
После некоторых манипуляций нам удалось удалить около 100 ненужных запросов.
Хочу рассказать о некоторых выводах и предостеречь некоторых разработчиков.
- Нет необходимости использовать функцию s_list_class если есть хотя бы > 3 подобных звонка.
Дело в том, что вызов такой функции приводит к нескольким запросам к базе данных (от 5 и более) (получение шаблона, данных компонента и т.д.).
Если вам нужно отобразить данные с другой страницы на компоненте страницы, то лучше написать функцию для отображения этих данных в файле function.inc.php модуля по умолчанию.
В таком случае почти всегда можно обойтись 1 просьбой.
В общем, один вызов s_list_class может создать десятки запросов к базе данных! В зависимости от компонента, объекты которого отображаются.
- Забудьте об opt() .
Использовать ( ? : ) Дело здесь в том, что даже если условие в opt вернуло false, код все равно будет выполнен, но его результат не будет отображен на странице.
- Будьте осторожны при использовании компонентов с полем «Файл».
.
При отображении списка объектов такого компонента запрос на получение данных о файле будет сделан столько раз, сколько отображаемых объектов.
А если таких полей типа «файл» будет два, то запросов будет в два раза больше.
Если три, то в три и т. д. Те.
если у нас есть компонент «фотогалерея» и в нем 2 поля «файл», то для отображения последних 10 фотографий будет сделано более 20 запросов к базе данных В общем, запросы в цикле — это крайнее зло! Избегайте этого.
- Почти та же ситуация и с голосованием.
При отображении опроса будет столько запросов к базе данных, сколько в ней вариантов ответов.
.
- Путем создания новых компонентов, в которых затем будет осуществляться отбор и сортировка по разным условиям.
поместите необходимые индексы в таблицу компонентов .
Это может существенно ускорить его работу.
Просто их должны создавать люди, действительно понимающие суть происходящих внутри процессов.
Поэтому вместо некоторых внутренних функций системы лучше использовать свои, написанные под конкретный проект. И будет хорошо, если эти моменты будут отражены в документации для разработчиков.
P.S. Обращение к разработчикам NetCat (если они это прочитают) .
Пожалуйста, избегайте циклических запросов к базе данных.
Особенно если заранее неизвестно, сколько итераций у него будет. Мне очень хотелось, чтобы эти проблемные функции были переписаны.
Также было бы неплохо отдельно указать в документации для разработчиков, производит ли функция запросы к базе данных, сколько их она производит и какие здесь есть подводные камни.
Теги: #CMS #netcat #веб-разработка #оптимизация #базы данных #wtf #wtf #разработка сайтов
-
Как Gitlab-Ci Наследует Переменные Среды?
19 Oct, 24 -
Как Я Писал Если На Шпагате
19 Oct, 24 -
Психология И Цифровая Реальность
19 Oct, 24 -
Визуальная Настройка Eclipse Для Linux
19 Oct, 24 -
Знакомьтесь Http://Erlanger.ru/
19 Oct, 24 -
Топ-10 Флеш Игр
19 Oct, 24