none
Optimizar limit

    Pregunta

  • Es MySql

    Espero me puedan ayudar, tengo una DB de MySql la cual tiene varios miles de registros con un campo mediumblob que contiene un pdf y requiero sacarlos, para lograrlo lo voy haciendo de 100 en 100, los primeros 100 salen rápido, pero a medida que se va avanzando en la tabla se va haciendo mas lerda la consulta. El procedimiento que uso es el siguiente.

    CREATE DEFINER=`root`@`localhost` PROCEDURE `pro_buscarDocumentoTodo`(
    in Var_rango int)
    BEGIN
    select id_Codigo,Documento from tb_documento  LIMIT Var_rango,100;
    END 

    Hice unas pruebas y le di un valor a Var_rango=0 (Cero) y duro 4 segundo, después le di valor de Var_rango=1000 y duro 40 segundos.

    He intentado optimizarla con el siguiente select pero no me funciona.

    select Numero, id_Codigo,Documento from tb_documento  
    where Numero > Var_numero order by Numero limit Var_rango,100;

    ¿Como podría optimizar esa consulta?

    La tabla tiene la siguiente estructura. 

    Columns:
    Numero int(11)
    id_Codigo varchar(15) PK
    CedulaIncapacitado varchar(15)
    id_Ebais int(6)
    id_Modalidad int(2)
    FechaVBClei date
    Documento mediumblob

    Nota:

    Numero: tipo int y NO se repite

    id_cCodigo: tipo varchar y es la primary key


    • Editado MagdielHG viernes, 16 de noviembre de 2018 16:30 Aclaración
    viernes, 16 de noviembre de 2018 16:29

Respuestas

  • Hola  MagdielHG

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te recomiendo ingresar al siguiente enlace donde puedes encontrar una posible solución para tu problema.

    https://docs.microsoft.com/es-es/azure/mysql/howto-troubleshoot-query-performance

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    viernes, 16 de noviembre de 2018 17:27
    Moderador