- Порезанный
- 23 сентября 2026 г. в 13:48 UTC
- Автор
- Kamo
- Обещать
- 41e4a00
pg stat statements: 'SELECT COUNT(c) FROM CommitLog c WHERE c.project IN (~33 общественных проекта) [и c.commitTypeId = :t]' работал ~ 140K раз в день по 100-200 мс каждый (измеряется на производстве) перед этим изменением - просмотр каждой страницы списка (страница(), адрес()/карта сайта) и каждый /changelog/public/stats call, на конечных точках, не требующих аутентификации. commit logs имеет ~19K В 38 проектах счет сам по себе дешевый, но он работал по каждому запросу. create commit log ledger.sql добавляет ту же общую + форму журнала create lead intake ledger.sql использует: commit log counts (общее количество на проект, тип совершения) плюс приложение commit log count deltas журнал, который запускает строку в commit logs Транзакция как вставка, обновление проекта / изменения типа или удаление. Применяется вручную как Владелец и заполнитель; DaemonService теперь сворачивает и пересчитывает его (отдельное обязательство). perf (changelog): складывайте и пересчитывайте публичный журнал изменений, развернутый первым. **************************** **************** Читать далее Total + Journal в одном родном заявлении вместо JPQL COUNT(c) — новые методы PublicChangelogService (заголовок уже объясняет, зачем нужен фильтр / запрос на общедоступную страницу) живет здесь, а не в библиотеке, разделенной Камо, а не в CommitLogRepository, поэтому это не нужно Shared-library release. todayCount() is unuched: it is a limited time-window count backed by ix commit logs date uid, а не шаблон вызова ~140K. Проверено против производства перед переключением: общие показатели бухгалтерского учета совпадали с COUNT (*) точно по всему все 264 (тип проекта, типа фиксации) пары (0 несоответствий) после закладки и три фиксации логи корректно запускает огонь (проверено внутри откатной транзакции как kamo app, собственное приложение) полномочия.
