KamoCRM

Strona wpisu czyta trzy rzędy, a nie cały publiczny dziennik zmian

PerformanceSecurityService
Shipped
23 września 2026 12:33 UTC
Author
Kamo
Commit
6add2f1

pg_stat_statements umieszczają odczyty pojedynczego wpisu changelogu na górze bazy danych przez Odległość: odnośnik ślimaka i dwa sąsiedzkie lookupy biegały 905 tys. funtów razy za 245 m — razem Około 70% całego czasu YugabyteDB spędził na wywiązywaniu się z oświadczeń. Strona marketingowa sprawia, że każdy Strona wpisu na żądanie (wpisy 19K x 22 miejsc), więc roboty indeksujące utrzymują je zajętymi i każdy koszt widoku Trzy niemal pełne odczyty z commit_logs: -ZnaleźBySlug używany ?commitHash LIKE:prefiks i projekt IN (...). Unikalny indeks na commit_hash Jest utwardzony HASH, więc skan prefiksów nigdy nie był możliwy (komentarz twierdzący, że w przeciwnym razie znikł), i Z listą projektową przedstawiono planer spaceru (projekt, date_committed) i filtrowany Publiczny rząd. Jest to teraz półotwarty zakres [prefiks, prefiks + "-") - każdy sortuje znak heks Poniżej '' w zestawie C — nad nowym ix_commit_logs_hash_prefix, z projektem publicznym Filtr stosowany w Javie do co najwyżej 16 kandydatów. Ta sama odpowiedź: dokładnie jeden mecz publiczny lub nic. - nowszy/starszy w porównaniu ?(d > :d (d :d :d AND id > :id)), co nie daje indeksowi miejsca do rozpoczęcia. Teraz mówią, że > :d AND (d > :d OR id > :id) (equiwalent), więc ix_commit_logs_date_uid startuje Jego spacer przy wejściu. Mierzone przy produkcji z wymusznymi ogólnymi planami (co przygotowuje strona serwera JDBC): ślimaka 2,2 ms (było 245 3116), nowsze 1,3 ms i starsze 1,2 ms (było 190 euro). Oba indeksy zostały stworzone przez Ręka jako właściciel i jest zapisana w :-) PublicChangelogLookupTest przypina kształty wypowiedzi i filtra Java-side (4 z 5 czerwonych przeciwko Poprzedni serwis).

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