Problema con consulta lenta uniendo 2 grandes tablas

  • Autor Autor tumastervip
  • Fecha de inicio Fecha de inicio
tumastervip

tumastervip

Delta
Verificación en dos pasos activada
Betas, necesito mostrar todo el listado de la tabla `formulariodirectoresiiee` con sus datos extras que se encuentran en `iest_2016` ambos

estan unidos por "codigo" en el caso de `tabla2` y "CODIGO" en `tabla1` para que puedan ser relacionadas.

EL problema es que la consulta se hace muy lentooooo.

Eh leido sobre indices pero no se como usarlos.

Espero que me puedan ayudar.

CREATE TABLE IF NOT EXISTS `tabla1` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`CODIGO` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`DATO1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`DATO2` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`DATO3` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`DATO4` varchar(100) NOT NULL,
`DATO5` varchar(100) NOT NULL,
`DATO6` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`DATO7` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`DATO8` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`DATO9` varchar(100) NOT NULL,
PRIMARY KEY (`ID`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=50752 ;


CREATE TABLE IF NOT EXISTS `tabla2` (
`codigo` varchar(12) NOT NULL DEFAULT '',
`dato1` varchar(5) DEFAULT NULL,
`dato2` varchar(12) NOT NULL DEFAULT '',
`dato3` varchar(300) DEFAULT NULL,
`dato4` varchar(100) DEFAULT NULL,
`dato5` varchar(50) DEFAULT NULL,
`dato6` varchar(50) DEFAULT NULL,
`dato7` varchar(30) DEFAULT NULL,
`dato8` varchar(200) DEFAULT NULL,
`dato9` varchar(200) DEFAULT NULL,
`dato10` varchar(400) DEFAULT NULL,
`dato11` varchar(50) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=150025 ;
 
No tiengo tiempo de montarme la consulta ahorita, pero el correcto uso de una where en la consulta hace que la misma sea mucho mas rapido. tambien depende de el motor de BD que estés usando
 
Hola amigo, es ncesario que des mas datos por ejemplo que cantidad de registros tiene cada tabla
que manejador estas usando

esas consultas que pusiste solo crea las tablas pero no veo la consulta donde las estas uniendo
tal vez podrias usar una vista que tenga las tablas unidas y luego solo pedir los datos de la vista
 
Los campos del where y union de tabals tienen q ser indice (o pk), sino la db hace un full scan..
 
Atrás
Arriba