KamoCRM

Utrzymanie commit_logs.translation_count w momencie pisania

PerformanceSecurityService
Szycy
23 września 2026 14:40 UTC
Autor
Kamo
Pochęt się
1f715e4

DDL: (kolumna + indeks przyporowy częściowy, stosowany do Produkcja już już) i : (jednorazowe nadrabianie zaległości, już prowadzone – 19 373 rzędów, wszystkie wylądowały na ich prawdziwym liczeniu). - teraz utrzymuje commit_logs.translation_count równy OD OD commit_log_translations dla tego wiersza, w tej samej transakcji REQUIRES_NEW, co Każdy lokal pisze: +1 dla naprawdę nowego locale, niezmieniony dla ponownego zapisywania już tam jednego (próba lub ponowne wypróbowanie-rozruchu dezynfekujące usuwa-wtedy-reinswuje to samo miejsce - zero netto). Zawinięty w RetryOnDbConflict, pasujący do konwencji tej bazy kodu dla napisu, który jest rzadki Jednoczesne naliczanie (początkowe tłumaczenie po połączeniu nadal w locie, gdy 5-minutowa próba Zamiata również ten sam niekompletny rząd) może 40001. - czyta to licznik ze zwykłym indeksem WHERE - zamiast grupy BY .. Rozpoczynając od nowa commit_logs LEFT JOIN commit_log_translations, który działał co 5 minut — mierzony w produkcji: Połączenia 14 tys. funtów (pełne skanowanie tabeli tłumaczeń nr 406K), zweryfikowane za pośrednictwem EXPLAIN ANALYZE przed okablowaniem tego w: 751ms -> 19.6ms (Index Only Scan, Heap Fetches: 0) dla tego samego Sprawa z pustymi wynikami. Korelowany podrzędny przeróbka pod-rowerów została wypróbowana jako pierwsza i odrzucona: EXPLAIN ANALYZE w produkcji pokazała go na 13,9, 18x WORSE niż oryginał – koszt YugabyteDB na RPC Dominuje wiele małych skorelowanych wyszukiwarek, dlatego jest to zachowana kolumna, a nie a Mądrzejsza dołączenia.

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.

Start Free ForeverZobacz ceny