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

Tabla gigante

Estas en el tema de Tabla gigante en el foro de Bases de Datos General en Foros del Web. Hola, trabajo con una base de datos que una de las tablas va recogiendo datos todos los dias y crece muy rapidamente. Cada vez tardan ...
  #1 (permalink)  
Antiguo 04/08/2005, 01:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Tabla gigante

Hola,
trabajo con una base de datos que una de las tablas va recogiendo datos todos los dias y crece muy rapidamente. Cada vez tardan mas las consultas, ya hemos creado indices y mejoró el asunto pero como va a seguir creciendo quería saber que se suele hacer en estos casos. La tabla tiene 5 campos.
Utilizo mysql aunque si me recomendais alguna otra bd a poder ser libre que mejore esto os lo agradecería.
  #2 (permalink)  
Antiguo 04/08/2005, 04:32
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 19 años, 3 meses
Puntos: 0
Bueno, yo te puedo esponer mi caso.... Aunque claro trabajo con ORACLE.

La solución para tablas enormes, en mi caso hablo de las ventas realizadas por una gran superficie, podemos hablar de los 100 millones de registros anuales, pasa por realizar particiones. Esto es que la información puedes definir por ejemplo que se particione, por ejemplo por un campo que esea mes-año contendria valores como 0105 0205 0305.....

Se puede realizar una creación automatica de tablespaces (ficheros donde van los datos) que la base de datos gestiona de forma casi automática. Y va colocando la información en cada uno dependiendo de como se defina. Podrias tambien definir que se separe la información por ejemplo por tienda , que en este caso son 40!, lo que hace que la información se particione de 100 millones a "tablas" de 250.000 registros que ya son muy asequibles.

Todo depende del tipo de información que vayas a guardar.

Espero haberte aclarado algo , y no se si en mysql existe el tema de las particiones.

Saludos.
  #3 (permalink)  
Antiguo 04/08/2005, 04:42
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Ok basicamente tu solucion es que la tabla se guarde en varios ficheros en funcion de un campo,podria ser uno por mes?
Pero esto me lo tiene que hacer mas o menos automaticamente mi SGBD no? configurandolo yo claro...
gracias
  #4 (permalink)  
Antiguo 04/08/2005, 14:48
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
El partir tablas en pedazos tiene su ventaja cuando tienes los pedazos en discos diferentes... ¿Puedes absorber el costo de diferentes RAIDs (si es que los tienes) para que trabajen en paralelo?

Necesitas investigar si MySQL tiene ese soporte, si no lo tiene revisa PostgreSQL que puede tener más posibilidades de soportarlo (y es totalmente libre)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 04/08/2005, 14:52
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Yo solo tengo un disco, entonces no me da ninguna ventaja separar la tabla en varios trozos?
Graciass


__________________

Última edición por tunait; 04/09/2005 a las 11:31
  #6 (permalink)  
Antiguo 07/08/2005, 16:16
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 10 meses
Puntos: 0
Dependiendo de lo que guardes en esta tabla se podria realizar distintas tareas. Faltaria saber si su contenido es de historico, cuanto tiempo se hace un tratamiento de estos datos, para que sirven etc...
__________________
Un saludo,
Trucos
Videos
  #7 (permalink)  
Antiguo 08/08/2005, 02:25
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Si, es un historico de datos recogidos de un sistema. Se consultan los datos diariamente para hacer graficas, tanto del mes actual como de años pasados para comparar...
  #8 (permalink)  
Antiguo 08/08/2005, 15:57
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Considera usar RAID0 (o equivalentes más seguros como RAID10) para mejorar el rendimiento, aunque eso implica un cambio de hardware más o menos caro: discos extras y probablemente una tarjeta RAID.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #9 (permalink)  
Antiguo 09/08/2005, 00:41
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Entonces sin raid no hay ventaja al separar la tabla en varios ficheros?
  #10 (permalink)  
Antiguo 09/08/2005, 15:01
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Hasta donde yo conozco (SQL Server) no, pero regresando al tema de los RAIDs, un RAID te beneficiará incluso si no haces particiones. al dividir carga entre discos.

Sin invertir en hardware la única alternativa que se me ocurre es agregar índices cuidadosamente (en exceso ralentizan el desempeño) y buscar la sintaxis más óptima para hacer las consultas.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 14:28.