В админке можно выставить в отладке количество SQL запросов. При заходе на страницу, я вижу что это значение составляет 7000. Но в коде есть только одно обращение в инфоблок, но это же один запрос. Может ли быть что отладка показывается количество элементов?
Jaroslav Gusev написал: В админке можно выставить в отладке количество SQL запросов.
Поясните. Речь о настройках отладки в админской панели публичной части?
Да. Я немного разобрался, но не могу понять в целом саму теорию инфоблока. Пример есть инфоблок на 7000 записей, если обращаться к пользовательским полям, то он выдает 7000 запросов. Но если к полю ID, то количество становиться 1. Т.е. дополнительные поля хранятся в других таблицах, но каким образом происходит такое количество запросов и можно ли этого как то избежать или же сократить их
Jaroslav Gusev написал: Пример есть инфоблок на 7000 записей, если обращаться к пользовательским полям, то он выдает 7000 запросов
Это при условии, что вы все 7000 записей выводите? Сильно. Да, на административной странице свойства каждой записи получаются отдельно.
Это был пример, реальность же хуже, мне отдали переписать один компонент, когда я начал смотреть на странице делается два перехода и каждый переход сопровождался в 21 тысячу запросов, я смог этого избежать и сделал чтобы каждый переход сопровождался в 2 тысячи, но время выполнения и потребляемая память все равно высокие, он обращается в список задач на портале, которые привязаны к группе и в два инфоблока, затем делает через foreach различные проверки. Меня все равно не устраивает, что я сделал и я пытаюсь понять как это сделать быстрее. Этот компонент явно проблема. В теории смогу кэшировать эти данные, частично исключить лишние запросы, но кэш мне нужно будет обновлять каждую минуту, это явно полумера. В теории можно переписать структуру инфоблока, может быть я смогу сократить еще запросы, но тогда придется исправлять очень много, на этих инфоблоках завязанна работать самописного интерфейса.