KamoCRM

バッチ2の翻訳は、プランナーが行ごとに悪くなっていた

Performancekamo-shared-library
Shipped
2026年9月23日 13:37 UTC
Author
Kamo
Commit
cf061b2

kbservice のパブリック KB エンドポイントとその翻訳-retry sweep KbArticleTranslation一度に1列のリポジトリ。 生産の pg stat statements は、以下の 2 つのコストを非常に異なるものにしました。 - findRealTranslationLocales(new):サイトマップ/hreflangのルックアップをバックアップする TranslateServiceの英語フォールバック行から実際の翻訳を伝えます (プロバイダが存在しない場合、ローカルキーで英語を保持できます) その方向)。 YugabyteDBのレガシーヒューリスティックによるこのクラスタープラン モデル(最適化統計なし)と、JPQL のネストされたループを選択 kb article translations の kb articles への参加: インデックスのスキャン uid リスト、それから別の単一列の索引はのための kb articles に調べます これらの行の1つ - 6,468 ストレージ RPC 308 粒子 org、 11.9 s, 一緒にメモリに収まる 2 つのテーブルに参加する (~6,000 呼び出しで 生産の各11 s。 pg hint plan HashJoinのヒントでネイティブSQL 代わりに参加するピン(同じテクニックとして) メニュー EXPLAINで検証 生産: 11.9 s -> 0.2 s、安定した下 plan cache mode=force generic plan(JDBCのサーバー側) 実際に実行する準備)。 - countGroupedByArticleUid(new): 10分翻訳-retry sweep 質問 countByArticle Uid 投稿された記事が 1 回に 1 回投稿されたものを見つける 依然として locales が必要 — 1.7M は生産、各サブミリ秒で呼び出します 一人で。 バッチ全体に1つのグループ化されたCOUNTは同じ答えです; uid 結果から不在にゼロ行があります。 kbservice は、これらの両方を (それぞれコミット、独自のリポジトリ) でワイヤします.

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