Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/01/2012, 10:29
Avatar de jercer
jercer
 
Fecha de Ingreso: octubre-2003
Mensajes: 373
Antigüedad: 20 años, 6 meses
Puntos: 13
Respuesta: Sistema sobrecargado

La teoría en Bases de Datos, es, una tabla para todos los datos "iguales", sin embargo por lo que dices, acabarás creando una tabla inmensa.

Una tabla inmensa, significa un inmenso espacio en disco duro, lo que significa que todas las consultas tendrán que recorrer una inmensa cantidad de datos.

Esto, en principio, ya que dependiendo lo optimizado de la consulta SQL, la tabla y la BD, podrá "saltar" de posición y no recorrer todas las posiciones en memoria ...

Entonces el tema está en calibrar el tiempo que cuesta acceder a una tabla "de más", que el recorrer una tabla inmensa.

No se si me he explicado bien, lo que quiero decir, es que cuando tienes que manejar datos tan grandes, lo que se suele hacer es pasar de tu tabla, por ejemplo:

tbl_ruedas
id
id_empresa
id_camion
pos_rueda
info_rueda



A algo como:
tbl_tbl_ruedas
id
nombre_tabla ----> Nombre de la tabla a la que acceder
fecha_ini ----------> Fecha de inicio en que se guardaron los datos
fecha_fin ----------> Fecha de fin en que se guardaron los datos

tbl_ruedas_[nombre_tabla]
id
id_empresa
id_camion
pos_rueda
info_rueda

Después lo que deberías hacer es un proceso para guardar datos, que establezca el umbral en que tu tabla deja de ser funcional y al llegar a él, cree una nueva tabla, asignando los valores en "tbl_tbl_ruedas".

Otro proceso para leer datos, que vaya a "tbl_tbl_ruedas", vea la tabla donde están los datos, los coja y los devuelva.

Estos procesos, claro deberían estar lo mas optimizados posible (Procedimientos almacenados ¿?)

Esto no quita todo lo que te han ido diciendo, para mezclarlo con "otras cosas", por ejemplo la última tabla de ese grupo será la única que "guardará datos", por lo que podría ser InnoDB, mientras que cuando se "cierre", se podría pasar a MyIsam. Este proceso debería hacerse en un momento de poca carga, etc.

Sin querer entrar en conflicto con nadie, y si el dinero no es problema, yo si te aconsejaría cambiar de Motor a Oracle o DB2.

Otra cosa, lo que he dicho de dividir una tabla en una tabla padre y 2 tablas, se puede extrapolar a una tabla padre, que llame a diferentes tablas en diferentes discos duros, o diferentes servidores / equipos, etc.