KamoCRM

Прекратите притягивать цепочку оргий LeadVendorProduct для чтения с одним идентификатором

Performancekamo-shared-library
Порезанный
23 сентября 2026 г. в 14:39 UTC
Автор
Kamo
Обещать
3677d12

findById() на LeadVendorProduct тянет своего поставщика по умолчанию EAGER, который сам нетерпеливо ловит его собственная организация и ее рынок (который снова привлекает ITS-организацию) — и организация @Inheritance (JOINED), так что каждый из этих прыжков также является внешним соединением ORG MTG для решения проблемы. полиморфный подтип. Измеряется в производстве pg stat statements: 8-стороннее соединение, ~780K вызывает 10-21 мс (~ 3 часа совокупного времени DB), почти полностью одноидные поиски ('где id = 1'), а не Сборный N+1 — у каждого абонента уже есть один идентификатор и он читает максимум продавцу + свои скалярные поля. Добавляет два бережливых метода LeadVendorProductRepository и переключает каждый абонент findById() kamo-shared-library + служба безопасности, которая соответствует тому, что она на самом деле читает: - findIsEmptyCreditFfaById: скалярная проекция JPQL, никаких соединений. - findByIdWithVendor: a @EntityGraph limited to 'vendor' (a plain, non-JOINED entity) - vendor.org и vendor.market возвращаются в качестве неинициализированных прокси-серверов, идентификатор которых по-прежнему читается без каких-либо дополнительных Запрос, который является всеми проверками собственности в этих абонентах, когда-либо необходимыми. Преднамеренно НЕ является @EntityGraph на vendor.org или vendor.market.organization. Организация и граф сущности, которые выводят дальнейшие ассоциации из объединенного наследства Это точная форма, которая приняла / приводит к снижению производства на Hibernate 6.2.13 (отсутствует FROM-clause) Вход для корневой таблицы — см. LeadAssigneeRef. Две компании, которым действительно нужен рынок организация **************** в службе безопасности) загрузить LeadMarket в качестве второй, Вместо обычного запроса — тот же раздел, который эта кодовая база уже использует для TeamMember. Формы JSON неизменны, изменены только те столбцы, которые считываются из базы данных.

Все изменения

Как вы видите судоходство?

Все это приходит в ваше рабочее пространство самостоятельно. Начните с бесплатного плана и прочитайте эту страницу через месяц.

Начните бесплатно навсегдаПосмотреть цены