- Порезанный
- 23 сентября 2026 г. в 02:17 UTC
- Автор
- Kamo
- Обещать
- 155e7de
buildPublicTreeIndex строит небольшой структурный индекс (родитель/ребенок, путь слизняка, предки) каждая публичная статья в организации, но для этого загружались полные строки KbArticle — content json Включенный, измеренный в ~6,6 КБ за строку против нескольких сотен байтов для остальной части строки вместе взятых. Индекс дерева и все, что находится вниз по течению от него (выдержка из каждого списка / узла дерева, пути и пути). Разрешение предка) никогда не читает content json; только чтение одной статьи сериализует его, и это Один ряд уже исходит из собственного отдельного поиска. Дерево/список/одиночный список организации из 300 статей Ответом было извлечение ~ 2 МБ текста тела из базы данных, чтобы немедленно отбросить его для всех, кроме одного. Один ряд. **************** выбирает все, что индекс фактически читает по имени (а) Проекционный запрос JPQL, а не метод репозитория — KbArticleRepository живет в библиотеке, разделенной на камо. вне сферы применения здесь) и создает реальные экземпляры KbArticle из рядов через собственного строителя организации, Никогда не настаивали и не присоединялись к сессии. Каждый читатель PublicTreeIndex продолжает работать без изменений; GetContentJson() на одном из них просто нуль, что имеет значение только для кодирования Сериализирует его, и ничего за пределами прочитанного не делает. Отдельно, /tree-by-parent-slug называют оба ******************* (который заряжает свой собственный) Копия каждой публичной статьи для восстановления одной и той же детской карты сборки и buildPublicTreeIndex — один запрос, полный список статей по всей организации загружается дважды. Первый сейчас Вместо того, чтобы перестраивать индекс, абонент уже построен в качестве параметра. Кроме того, TranslateRefs (хлебные крошки и ссылки «see also», не на английском языке) разрешили перевод каждого ref. пересмотрев руководство редактора до статьи KbArticle, а затем запросив его перевод - два запроса Справочно. Реф уже несет в себе руководство статьи, которую он называет сейчас (KbArticleRefDTO.uid, внутренний) Только — @JsonIgnore, никогда в публичном ответе, так что **************** Решает каждый ref в списке в одном пакетном запросе. Тесты: KbArticleServiceTreeIndexTest утверждает, что проекция несет в каждом поле полную нагрузку объекта (contentJson исключил, утверждал, что не имеет значения) и что вычисление дерева/пути/путеводителя построено из него та же трехуровневая форма, которую могла бы произвести нагрузка на весь объект - на основе светильника Старый-новый чек. **************************** упражнения /by-slug end to end на французском языке Доказывает, что пакетный поиск заменяет путеводитель в оба конца ******************* Никогда не призывал к ответу.
