Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Reto: Consulta de registros duplicados

Estas en el tema de Reto: Consulta de registros duplicados en el foro de Mysql en Foros del Web. Tengo una tabla ( solicitud ) en mi base de datos que cuenta con 11,000 registros de la cuál quiero obtener una consulta de todos ...
  #1 (permalink)  
Antiguo 18/08/2011, 11:10
Avatar de Yamilskate  
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Reto: Consulta de registros duplicados

Tengo una tabla (solicitud) en mi base de datos que cuenta con 11,000 registros de la cuál quiero obtener una consulta de todos aquellos registros que coinciden en tres columnas (colonia, num_exterior y num_interior).

Algo así como un SELECT "NO DISTNICT"

Intente algo de tipo:
Código PHP:
SELECT colonianum_exteriornum_interior FROM solicitud WHERE CONCAT(colonianum_exteriornum_interiorin (SELECT CONCAT(colonianum_exteriornum_interiorFROM solicitud GROUP BY CONCAT(colonianum_exteriornum_interiorHAVING count(CONCAT(colonianum_exteriornum_interior)) > 1
Pero tarda siglos y tira mi base de datos por lo que tengo que reiniciar mi servidor, algún ser poderoso me puede ayudar'?

Última edición por Yamilskate; 18/08/2011 a las 11:20
  #2 (permalink)  
Antiguo 18/08/2011, 11:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 15 años, 2 meses
Puntos: 2658
Respuesta: Reto: Consulta de registros duplicados

Si esto funciona lento:
Código MySQL:
Ver original
  1.   colonia,
  2.   num_exterior,
  3.   num_interior
  4. FROM solicitud
  5.   (colonia, num_exterior, num_interior)
  6.     IN (SELECT DISTINCT colonia, num_exterior, num_interior
  7.         FROM solicitud
  8.         GROUP BY colonia, num_exterior, num_interior
  9.         HAVING COUNT(*) > 1)
Entonces créale un indice a la tabla "solicitud" sobre esos tres campos (colonia, num_exterior, num_interior). Eso mejorará la perfomrmance.

CONCAT implica crear una cadena y comparar cadenas. Eso siempre tiende a tener menos optimización que lo que te posteo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/08/2011, 11:24
Avatar de Yamilskate  
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Reto: Consulta de registros duplicados

Ok, gracias, deja pruebo creando los indices y te cuento, por lo pronto, entonces mi SQL es correcto? Es el mejor modo de encontrar duplicados?

Editado: Si mejoro bastante, para encontrar 135 registros tardo 3 segundos, mientras que antes tardaba 10, ahora probare de modo masivo haber si no tumbo mi servidor :P

Última edición por Yamilskate; 18/08/2011 a las 11:33

Etiquetas: duplicados, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:17.