KamoCRM

Не навантажуйте контент json для побудови індексу публічного дерева, і зупиніть його двічі

PerformanceKBService
Змішані
23 вересня 2026 р. о 02:17 UTC
Авторизація
Kamo
Про нас
155e7de

buildPublicTreeIndex будує невеликий структурний індекс (парент/child, стеження, предки) від Кожна публічна стаття в org, але вона була завантаження повних рядків KbArticle, щоб зробити це — зміст json включено, вимірюється в ~6.6 КБ за ряд проти декількох сотень байтів для решти рядка комбінований. Індекс дерева і все внизу його (випускають на кожному списку / вугіллі дерева, шлях і ancestor роздільна здатність ніколи не читає зміст json; тільки одночастина, що читає її, і це один ряд вже виходить з власного окремого вигляду. Дерево/лист 300-частинкова організація відповідь була витягнута ~2 Мб тексту тіла з бази даних, щоб негайно відкинути його для всіх, але один ряд. *********** вибрати всі індекс насправді читається за назвою (a JPQL проекційний запит, не репозиторійний метод — KbArticleRepository life in kamo-shared-library, з точки зору тут) і будує реальні екземпляри KbArticle з рядків через власний конструктор суб'єкта господарювання, ніколи не закріплюється або прикріплюється до сеансу. Кожен існуючий зчитувач PublicTreeIndex зберігає роботу без змін; getContentJson() на одному з них просто null, який тільки має значення для коду, який і нічого не виходить за одностатеві читання. Окремо, /tree-by-parent-slug назвав обидва *********** (який завантажив власний Копія кожної публічної статті, щоб перебудувати однакові дитячі карти побудовиПублічний шляхІндекс вже будує) і побудуватиПублічний шляхTeeIndex — один запит, повний список статей, завантажений двічі. Зараз введіть індекс, який вже побудований в якості параметра замість його перебудування. Крім того, перекладРефс (бактерії та "див. також" посилання, неанглійські) вирішили переклад кожного реф'ю шляхом повторного завантаження походу реф до KbArticle, а потім перезавантажити його переклад — два запити за реф. Реф вже несе у собі статті імена тепер (KbArticleRefDTO.uid, внутрішня тільки — @JsonIgnore, ніколи не в публічній відповіді, тому *********** Вирішує кожен реф в списку в одній партії замість. Тести: KbArticleServiceTreeIndexTest стверджує, що проекція несе будь-яке поле повного навантаження буде мати (contentJson крім того, затверджений null) і що дерево/path/ancestor обчислення вбудований з нього однакова трирівнева форма повного навантаження — на основі кріплення Стародавній контроль. ****************************************************************************************************************************************************************************************************************************************************************************** вправи /by-slug end для завершення в французькому і доводить пакетний зовнішній вигляд замінює походовий округ **************** не викликається реф.

Всі зміни

Як ви бачите відправлення?

Все це прибуває в робочому просторі. Почати безкоштовно план і читати цю сторінку знову в місяць.

БезкоштовноПерегляд цін