Consultas lentas en Data Explorer

He creado algunas consultas del Explorador de Datos.

Si las ejecuto en el backend de administración, la GUI me muestra un tiempo de ejecución muy rápido para la consulta de la base de datos en sí, por ejemplo, “Query completed in 7.9 ms”.

El registro de red de mi navegador muestra que, por ejemplo, se accedió a https://example.com/admin/plugins/explorer/queries/1/run y que tardó 1-2 órdenes de magnitud más en obtener el resultado, por ejemplo, 150 ms.

Cuando ejecuto una consulta con curl, tarda aún más, aproximadamente el doble de tiempo en comparación con la ejecución de la consulta en el panel de administración.

¿Cómo puedo tener consultas del Explorador de Datos que pueda recuperar rápidamente sin tanta sobrecarga?

1 me gusta

Según la información que proporcionó, diría que esas son consultas simples (rápidas de ejecutar en el RDBMS), que devuelven muchas filas (lentas de serializar/deserializar en el backend y transferir).

Si el rendimiento actual está bloqueando su caso de uso, existen muchas soluciones diferentes que puede explorar:

  • Reducir el número de filas por página, para que cada página sea más rápida.

  • Crear un plugin que exponga la misma información en un nuevo punto final de API y sea más inteligente en cuanto a caché y formato de datos.

  • Consultar directamente la base de datos subyacente.

3 Me gusta

Tenemos búsquedas mágicas para ciertos nombres de columnas (user_id, post_id, etc.) y las renombramos a algo más como post_id1, etc.

1 me gusta

¡Gracias, chicos!

Es lo mismo si solo tengo una sola fila como resultado de una consulta. Por ejemplo, una consulta que devuelve un solo entero, ejecutada en el panel del Explorador de Datos en el backend de administración tarda 9 ms, ejecutada desde el exterior contra la API del Explorador de Datos a través de curl tarda 200 ms.

Me gustaría mucho evitar eso, uso el Explorador de Datos porque se sugirió en estos foros como una buena manera de obtener información de la base de datos y una API que funcione bien para eso.

Mi consulta los usa para JOINs pero no en el conjunto de resultados. El SELECT solo tiene una columna y es una recién calculada con un nombre arbitrario.

¿Qué dice NGINX sobre la hora del servidor para la solicitud? ¿Podría ser un problema de red?

Asumiendo que esos son los números de punto flotante 3 lugares a la derecha del código de estado HTTP (por ejemplo, ... 200 642 "-" **0.107 0.108** "system" ..., resaltados con asteriscos por mí) son aproximadamente 10 veces la duración del tiempo de consulta informado en el backend y prácticamente la mitad del tiempo que tarda curl desde mi cliente.