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

Consulta a tablas historicas

Estas en el tema de Consulta a tablas historicas en el foro de Mysql en Foros del Web. Buen dia amigos. Quisiera saber su opinion de la manera mas eficiente de hacer una consulta SQL hacia una seria de tablas historias es decir ...
  #1 (permalink)  
Antiguo 07/06/2011, 10:32
 
Fecha de Ingreso: junio-2005
Mensajes: 2
Antigüedad: 18 años, 10 meses
Puntos: 0
Consulta a tablas historicas

Buen dia amigos.

Quisiera saber su opinion de la manera mas eficiente de hacer una consulta SQL hacia una seria de tablas historias es decir

Datos2011
Datos2010
Datos2009
Datos2008

todas las anteriores tablas tienen la misma estructura de campos.

Ahora, la cuestion es que se quiere tener una unica consulta, lo mas eficiente posible para que encuentre un valor de un ID ( Este no se repite en las tablas), por lo consiguiente queremos encontrar un valor digamos 454554 en cual de las tablas este.. y que me deba traer el registro correspondiente.

Estuve revisando con UNION, CASE, IF o Subquerys... pero no se como sea mas eficiente.

Por cierto... digamos que cada tabla tiene como 100.000 registros.... entonces la eficiencia del query es fundamental....

Agradecido de antemano por sus opiniones....

Gracias...!!!
  #2 (permalink)  
Antiguo 08/06/2011, 03:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta a tablas historicas

La unica forma es via union pero tendrias que modificarlo cada año...

Otra forma que quizas no seria muy costosa ya que hablamos del id seria un bucle externo que haga las consultas individualmente hasta encontrar el registro....

for ($anio=$anioactual;$anio>$aniominimo;$anio--){

//Lanzas la consulta del año
SELECT * FROM DATOS$anio WHERE id=454554

//Si retorna el registro break;

}

Otra opción si el id es autoinc es guaradar en una tabla indice los maximos y minimos de cada año

TablaIndice
Anio
idMin
idMax

Luego

SELECT Anio FROM TablaIndice WHERE idMin<=454554 AND idMax>=454554

una vez obtienes el año lanzas la consulta que te dará el registro buscado.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: tablas
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 13:26.