Estoy tratando de recuperar 50K + filas de la tabla en MYSQL DB. Tarda 20 min. ¿Puedo usar subprocesos múltiples para reducir este tiempo de recuperación?

Antes de intentar una solución con subprocesos múltiples, pase por los siguientes puntos

  • ¿Hay un índice adecuado en la (s) columna (s) de la tabla en la que se ejecuta la consulta de recuperación de datos? Si no, esta debería ser la primera mejora que se debe tener.
  • Una vez que se verifican los índices, podemos comparar los resultados. Para una mejora adicional, intente optimizar la consulta en sí misma en términos de tiempo de ejecución. En Oracle tenemos algo llamado Plan de consulta, que explica el plan de ejecución de la consulta en términos de cuántos registros se escanearon y qué índices se utilizan. Entonces, identifique la opción similar en mi sql.
  • Compare el controlador que está utilizando con la última versión. A veces, actualizar a los últimos controladores jdbc también resuelve problemas potenciales.

Espero que esto ayude.

Hola ,

1) Puedes hacer una función.

2) Divida su consulta SQL en partes y ejecútelas. Digamos consulta sql

Con la parte 1 como (), la parte 2 aa () seleccione * de la parte 1, parte 2 donde .condición.

Reducirá automáticamente el tiempo de consulta.

Espero que funcione para ti

sí tu puedes.

Pero hay que tener mucho cuidado en leer rango por rango,

Por ejemplo, si se asignaron 10 hilos, y cada hilo asignado para tomar 100 filas.

Cada hilo puede tener 5 iteraciones. Por lo tanto, cada iteración de cada subproceso debe tener un final de inicio adecuado (podemos tener una referencia estática común y debe estar sincronizada ). Si tenemos algún problema en la lógica para encontrar el inicio y el final. Dos hilos pueden obtener las mismas filas a la vez

Definitivamente reduce su tiempo de búsqueda. Mientras tanto, vuelva a realizar una verificación cruzada, su modal de datos tiene una indexación adecuada

La respuesta simple es: “Sí, puede usar subprocesos múltiples”.

Pero, solicitaría poner un ejemplo de muestra (debería ser similar a su problema original). Obtener 50K + filas nunca debería tomar 20 minutos … es demasiado.

Obtener 50K filas de la propia base de datos es un mal enfoque, debe intentar la paginación. Si está buscando agregar datos, verifique si GROUP BY y las funciones agregadas funcionan.

revise su indexación, si está utilizando alguna combinación intente tener un índice compuesto

índice de enlace en columnas