KamoCRM

Manter commit logs.translation count em tempo de escrita

PerformanceSecurityService
Navios
23 de setembro de 2026 às 14:40 UTC
Autor
Kamo
Enviar
1f715e4

DDL: (coluna + índice amigável parcial, aplicado a produção já) e ************************* (uma vez catch-up, já correr 19.373 fileiras, todas pousaram em sua contagem real). * ************* agora mantém os registros de commit logs.translation count exactamente igual a COUNT(*) DE COMmit log traduções para essa linha, na mesma transação REQUIRES NEW que cada locale write: +1 para um locale genuinamente novo, inalterado para uma re-save de um já lá (um reteste ou uma regra de sanitização re-trigger delete-então-reinseri o mesmo locale — net zero). Embrulhado em @RetryOnDbConflito, combinando a convenção desta base de código para uma escrita que é rara concomitante-sobreposição (a tradução inicial pós-compromisso ainda em voo quando a repetição de 5 minutos varrer também capta a mesma linha ainda incompleta) poderia 4001. **************************** lê esse contador com um simples indexado ONDE **************** em vez do GRUPO POR... commit logs ESQUECEM COMmit log translations que funcionava a cada 5 minutos — medidos na produção: ~14K chamadas em ~750ms (uma verificação completa da tabela de traduções ~406K-row), verificada via EXPLAIN ANALYZE antes de fiar isto em: 751ms -> 19,6ms (Index Only Scan, Heap Fetches: 0) para o mesmo Caso de resultado vazio. Uma reescrita correlacionada por linha foi tentada primeiro e rejeitada: EXPLAIN A ANALYZE na produção mostrou-o em 13,9s, ~18x WORSE do que o original — custo de YugabyteDB por-RPC para muitos pequenos lookups correlacionados domina, e é por isso que esta é uma coluna mantida, não Mais inteligente juntar-se.

Todas as alterações

Como o que vês no transporte?

Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.

Começar Livre Para SempreVer Preços