Bases de Datos - BASES DATOS GRANDES

 
Vista:

BASES DATOS GRANDES

Publicado por wilmer85 (1 intervención) el 20/10/2009 18:42:28
HOLA A TODOS.

El motivo de mi consulta es la siguiente dado qeu yo es una duda muy facil en bases de datos MYSQL.
Resulta que me encuentro trabajando unas serie de consulticas en una base de datos con tabls de 500000registros, 400000 registros y necesito hacer una consulta que me las relacione pero el computador se me muere pensando .
mire la consulta es la siguiente en MYSQL :

SELECT fecha2, fechasolicitud, NumeroCuenta2, NombreOficina2, NombrePop2,Nuip,ValorTotal2 FROM dniproduccion JOIN bancopopulardos ON dniproduccion.Nuip=bancopopulardos.Identificacion ;

A ver les cuento son 2 tablas dniproduccion y bancopopulardos cada uno con aproximadamente 5000000 registros, necesito sacar los registros donde las columnas Identiciacion(popular2 es la tabla) y Nuip( dniproduccion es la tabla) coincidan y listo.

en cada columna Identificacion y Nuip tengo un indice asociado a ellas.
asi las definiciones de las tablas son:
CREATE TABLE `bancopopulardos` (
`fecha2` varchar(15) DEFAULT NULL,
`NumeroCuenta2` bigint(20) DEFAULT NULL,
`Oficina` smallint(6) DEFAULT NULL,
`NombreOficina2` varchar(40) DEFAULT NULL,
`CHEQCANJE` bigint(20) DEFAULT NULL,
`CHQBPOPULAR` bigint(20) DEFAULT NULL,
`Efectivo` bigint(20) DEFAULT NULL,
`ValorTotal2` bigint(20) DEFAULT NULL,
`NumDocumento` bigint(20) DEFAULT NULL,
`Jornada` smallint(6) DEFAULT NULL,
`NombrePop2` varchar(40) DEFAULT NULL,
`Identificacion` bigint(20) DEFAULT NULL,
`itemfinal` varchar(2) DEFAULT NULL,
KEY `indicepopular2` (`Identificacion`))

CREATE TABLE `dniproduccion` (
`numpreparacion` bigint(20) DEFAULT NULL,
`fechasolicitud` varchar(20) DEFAULT NULL,
`Nuip` varchar(20) DEFAULT NULL,
`IdClasExp` bigint(20) DEFAULT NULL,
`CodRectificacion` varchar(5) DEFAULT NULL,
`item` varchar(10) DEFAULT NULL,
`CodOficina` varchar(10) DEFAULT NULL,
`Nombre1` varchar(30) DEFAULT NULL,
`Nombre2` varchar(30) DEFAULT NULL,
`Apellido1` varchar(30) DEFAULT NULL,
`Particula` varchar(30) DEFAULT NULL,
`Apellido2` varchar(30) DEFAULT NULL,
`Sexo` varchar(5) DEFAULT NULL,
KEY `indiceproduccion` (`Nuip`))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:BASES DATOS GRANDES

Publicado por Franklin Gamboa (188 intervenciones) el 21/10/2009 15:09:07
Casi parece que la consulta es tan rapida como puede ser, salvo que todavia puede tunearse.

Cree un indice sobre las tablas que incluyan las llaves primarias de las tablas y los campos que esta seleccionando, de menos repetitivo al mas repetitivo.

Entonces, creas el indice en la tabla bancopopulardos con las columnas Identificacion, NumeroCuenta2, fecha2, NombrePop2, NombreOficina2, ValorTotal2 (en este orden) y en la tabla dniproduccion por las columnas Nuip y fechasolicitud.

Sin ver el plan de ejecucion me aprece que ese es el paso inmediato a seguir, si sigues teniendo problemas con la consulta, deberas revisar el plan de ejecucion y empezar a tunearla de acuerdo a como la trata el motor, aunque ya por agregar este indice dudo que se pueda hacer algo mas al respecto.

Si sigue durando mucho, la unica salida que quedaria seria cambiar el hardware.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar