KamoCRM

Deja de preguntar tres consultas calientes una fila a la vez

PerformanceKBService
Se descapó
23 de septiembre de 2026 a las 13:39 UTC
Autor
Kamo
Compromit
60e1921

Tres consultas de declaracións de declaración de la policía se muestran como la mejor producción de Kbservice DB costo, todo de preguntar en un bucle (o con un plan el legado YugabyteDB Planner eligió mal) lo que una sola consulta podría responder: - **************** (el mapa del sitio y todos los datos hreflang de árbol / lista/lista-lía-crimina única) se lee ahora a través de ************* a la consulta nativa insinuada (calfija-comisariada de kámo, commit separada) Que pines a un Hash Join el planificador no estaba eligiendo por sí solo. 6.000 libras llamadas a 11 s cada una en producción; verificada con EXPLAIN, 11.9 s - 0,2 s para el mismo 308-artículo org. - **************** (el barrido de diez minutos de traducción-reintromisión) ahora pregunta **************** una vez para el todo el lote de artículos publicados en lugar de conteoByArticle-Uid per las llamadas de producción, sustituidas por una lectura agrupada. - construirPublicChildrenMap y buildUidToGuidMap, en KbArticleService, son Quitado. Eran código muerto dejados atrás cuando **************** se movió a tomar un pre-construido PublicTreeIndex (155e7de) en lugar de reconstruir uno desde una sesión completa carga de artículo: Tampoco le quedaba una persona que llamara, pero cada uno todavía era exactamente el Llamadas de 306.000 libras / 80 ms de cindilla completa con kb-articles consulta (content-json incluidos): los declarataciones de pg.stat-statements mostraron una trampa lenta e inalcanzable para el siguiente llamante para encontrar usándolo, no tráfico en vivo. buildPublicTreeIndex ella misma ya lee la carga de proyección estrechaPublicArticlesForTree añadido en 155e7de, confirmado en vivo en la producción (8.730 llamadas a 17 ms cada uno, creciendo) que la solución ya enviada; esto sólo elimina los dos Los sitios de llamadas sobrantes todavía capaces de reintroducir el costo de la sesión completa. Pruebas: KbTranslatedLocalesServiceTest y **************** tapa el lote esto adiciones (BATCH chunking, manipulación uid null/duplicado, mapeo de remos agrupado, "ausente significa cero"); ambos verificados por mutación revirtiendo la fijación localmente, confirmando que se vuelven rojos y restaurando. Examinado también: kb-article-relations y la lista de pago KB-admin consultas (variaciones de estata/estado/parentoid de la carga en plenas fil de las partículas kb) aparecer en declaraciones de datos con grandes totales pero sin recordar latencia (1-20 ms) y no hay señales de un mal plan. ******************* se llama una vez por artículo en la página pública de niños por padres-slug (relacionado por página tamaño, cerrado detrás de lugar no inglés) - no el patrón de la fuga el Otros tres estaban, por lo que también se quedaron solos.

Todos los cambios

Como lo que ves enviaste?

Todo llega a su espacio de trabajo por sí solo. Comience en el plan gratuito y lea esta página de nuevo en un mes.

Arranzar gratis para siempreVer Precios