- Порезанный
- 23 сентября 2026 г. в 14:40 UTC
- Автор
- Kamo
- Обещать
- 1f715e4
DDL: **************** (колонка + индекс частичного благоприятствования, применяемый к Производство уже началось и *************** (Однажды догонять, уже бегать — 19 373 ряда, все приземлились по их реальному счету. **************** теперь держит commit logs.translation count точно равным COUNT(*) FROM commit log translations для этой строки в той же транзакции REQUIRES NEW, что и Каждая локация пишет: +1 для действительно новой локации, без изменений для повторного сохранения одной уже там. (повторный или повторный триггер дезинфицирующего правила удаляет, а затем повторно вводит ту же самую область — чистый ноль). Завернутый в @RetryOnDbConflict, соответствующий конвенции этой кодовой базы для записи, которая является редкой concurrent-overlap (первоначальный перевод после выполнения задания все еще в полете, когда 5-минутная повторная попытка) Подметка также поднимает тот же еще неполный ряд) мог 40001. **************************** Считает, что счетчик с простой индексированной где **************** Вместо группы .. LEFT JOIN commit log translations он выполняется каждые 5 минут — измеряется в производстве: ~14K звонит на ~750 мс (полное сканирование таблицы переводов ~406K-ряда), проверенное через EXPLAIN АНАЛИЗ перед подключением это в: 751 мс -> 19,6 мс (Index Only Scan, Heap Fetches: 0) для того же Случай с пустым результатом. Коррелированный переписывание подзапроса в строке было сначала опробовано и отклонено: АНАЛИЗ на производстве показал его в 13,9, ~ 18 раз хуже, чем оригинал - стоимость YugabyteDB за RPC для многих небольших коррелированных поисков доминирует, поэтому это поддерживаемая колонка, а не Умнее присоединиться.
