KamoCRM

Zachowaj commit _ logs.translation _ count w czasie zapisu

PerformanceSecurityService
Shipped
23 września 2026 14:40 UTC
Author
Kamo
Commit
1f715e4

DDL: (kolumna + indeks przyjazny stronie, stosowany do produkcja już) i * * * * * * * * * * * * * * * * * * (one- time catch- up, already run - 19,373 wierszy, wszystkie wylądowały na ich prawdziwym liczeniu). * * * * * * * * * * * * * * * * teraz utrzymuje commit _ logs.translation _ count dokładnie równy COUNT (*) From commit _ log _ translations for that row, in the same exempRES _ NEW transaction as każda locale write: + 1 dla prawdziwie nowego locale, bez zmian dla ponownego zapisu jednego już tam (ponowna próba lub reguła usypiania - ponownie-wyzwalacz usuwa - następnie - ponownie umieszcza to samo miejsce - zero netto). Zawinięty w @ RetriOnDbConflict, pasujący do konwencji codebase do zapisu, że rzadko concurrent- according (początkowe tłumaczenie postcommit nadal w locie, gdy 5-minutowe ponowne próby zamiatanie odbiera również ten sam niekompletny rząd) może 40001. Nie, nie, nie. czyta ten licznik ze zwykłą indeksowaną gdzie Nie, nie, nie. commit _ logs LEFT JOIN commit _ log _ translations wykonywana co 5 minut - mierzona w produkcji: ~ 14K połączeń przy ~ 750ms (pełne skanowanie tabeli tłumaczeń ~ 406K- wiersz), zweryfikowane przez EXPLAIN ANALYZE przed podłączeniem tego w: 751ms - > 19.6ms (indeks tylko skanować, Heap Fetches: 0) dla tego samego empty-wynik przypadku. Korelowane przepisywanie wiersza subquery zostało najpierw wypróbowane i odrzucone: EXPLAIN ANALYZE na produkcji pokazał go na 13.9s, ~ 18x WORSE niż oryginał - YugabyteDB per- koszt RPC dla wielu małych skorelowanych lookup dominuje, dlatego jest to utrzymywana kolumna, a nie Lepiej się dołącz.

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