KamoCRM

Z dwoma przetłumaczeniami, odszukają, od tego, że planista radził sobie źle z rzędu

Performancekamo-shared-library
Shipped
23 września 2026 13:37 UTC
Author
Kamo
Commit
cf061b2

Publiczne punkty końcowe KB kbservice i jego przesłuchiwanie tłumaczeń obydwa zostały zadane KbArtykuł Przekłatowanie Repozytorium w jednym wierszu na raz. Produkcja pg_stat_statements pokazał dwa bardzo różne koszty niż: - findRealTranslationLocales (nowe): cofa mapę strony / hreflang lookup, który Opowiada prawdziwe tłumaczenie z wierszy TranslateService z rzędów z Upływem w języku angielskim (runij może trzymać angielski pod kluczem lokalnym, gdy nie istnieje żaden dostawca dla Ten kierunek). Ta klasa planuje z dziedzictwem YugabyteDB Heurys Model (brak statystyk optymalizatora) i wybrał pętlę Nested dla JPQL Połączenie kb_article_translations do kb_articles: skanowanie indeksu dla Uid lista, a następnie osobny indeks pojedynczego rzędu lookup w kb_articles dla każdy z tych wierszy — 6,468 magazynowych RPC dla orgumentu 308-cząstkowego, 11.9 s, aby połączyć dwa stoły, które razem pasują do pamięci (6000 osób zawierchalnych do 11 zł każda w produkcji). Natywny SQL z pg_hint_plan HashJoin wskazówką Zamiast tego przypina łącznik (ta sama technika jako - Sprawdzone z EXPLAIN w trybie Produkcja: 11.9 s -> 0,2 s, stabilna pod plan_cache_mode ? force_generic_plan (kształt JDBC po stronie serwera Przygotowuje się faktycznie podbiegiem). - countGroupedByArticleUid (nowy): dziesięciominutowe tłumaczenie-przetarcie Zapytał hrabstwoByArticle_Uid raz na opublikowany artykuł, aby dowiedzieć się, które z nich Nadal potrzebują lokalizacji — 1,7 mln połączeń w produkcji, każda podmiołowa sekunda W pojedynkę. Jeden pogrupowany KRAJ nad całą partią jest tą samą odpowiedzią; uid Brak w wyniku ma zerowe wiersze. Przewody kbservice obu z nich (oddzielne zaangażowanie, własne repo).

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing